Obiekty nie dziedziczą funkcji prototypowych
Mam jedną funkcję konstruktora, która działa jako superklasa:
Bla = function(a){this.a = a;}
Prototypuję go tak, aby zawierał prostą metodę:
Bla.prototype.f = function(){console.log("f");
A teraz nowyBla(1).f();
zapisze „f” w konsoli. Ale powiedzmy, że potrzebuję podklasy, która dziedziczy po Bla:
Bla2 = function(a)
{
this.base = Bla;
this.base();
}
x = new Bla2(5);
Teraz, zgodnie z oczekiwaniami,x.a
daje mi5
. Ale,x.f
jestundefined
! Wygląda na to, żeBla2
nie odziedziczył go poBla
klasa! Dlaczego tak się dzieje i jak mogę to poprawić?