2010-04-11 20 views
6

natknąłem się na ten slajd: http://www.slideshare.net/stoyan/javascript-patterns#postCommentReset konstruktora javascript: co to jest?

na stronie 35:

Wariant 5 + Super + konstruktor zresetować

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

ja nie rozumiem. Czy ktokolwiek może wyjaśnić, do czego służy ostatnia linia?

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

Dzięki

Odpowiedz

11

To daje wyjaśnienie http://phrogz.net/JS/Classes/OOPinJS2.html

W szczególności

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

Dzięki. JavaScript to naprawdę dziwny język. :) – Sake

+2

To jest. Osobiście nie używałbym nazwy 'constructor' do przechowywania konstruktora, ponieważ' constructor' ma już znaczenie w JavaScript. (Po prostu nie przydatny). – bobince