2010-04-11 16 views
6

me encontré con esta diapositiva: http://www.slideshare.net/stoyan/javascript-patterns#postCommentjavascript reconstructor reset: ¿Qué es?

en la página 35:

Opción 5 + Super + constructor restablecen

function inherit(C, P) { 
    var F = function(){}; 
    F.prototype = P.prototype; 
    C.prototype = new F(); 
    C.uber = P.prototype; 
    C.prototype.constructor = C; // WHY ??? 
} 

Yo no lo entiendo. ¿Alguien puede explicar para qué sirve la última línea?

C.prototype.constructor = C; // WHY ??? 

Gracias

Respuesta

11

Esto da una explicación http://phrogz.net/JS/Classes/OOPinJS2.html

En particular

Cat.prototype = new Mammal();  // Here's where the inheritance occurs 
Cat.prototype.constructor=Cat;  // Otherwise instances of Cat would have a constructor of Mammal 
+3

Gracias. Javascript es un lenguaje realmente extraño. :) – Sake

+2

Lo es. Yo personalmente no usaría el nombre 'constructor' para almacenar el constructor porque' constructor' ya tiene un significado en JavaScript. (Simplemente no es útil) – bobince