Mar
6
2010
JS dziedziczenie i override’y
Niby nie ma formalnie klas w JS, jednak mozemy stworzyc cos co mimo braku podzialu na obiekty prywatne, publiczne itd, bedzie wygladalo na klasy.
Na poczatek stworzmy nasza “klase” bazowa
// konstruktor klasy BaseClass = function(name) { this.name = name || "obj_" + (new Date()).getTime(); }; BaseClass.prototype.className = "BaseClass"; // instancja klasy BaseClass var instanceOfBaseClass = new BaseClass();
w ten sposob mamy obiekt posiadajacy dwie wlasnosci name i className. Ta druga nie bedzie dziedziczona bezposrednio.
A teraz dziedziczenie.
DerivativeClass = function(name) { this.super = BaseClass; this.super(name); }; DerivativeClass.prototype = new BaseClass(); DerivativeClass.prototype.className = "DerivativeClass"; var instanceOfDerivativeClass = new DerivativeClass();
Po tym zabiegu instancja klasy DerivativeClass bedzie wygladac mniej wiecej tak
instanceOfDerivativeClass className = "DerivativeClass" name = "obj_1267912571913" super prototype className = "BaseClass"
Dzidziczenie? Jak najbardziej
Teraz sprobujmy nadpisac funkcje bazowa init, na poczatek dodajmy ja
czytaj dalej
