W standardowej klasy wyprowadzenie, jest prawie uniwersalny błędem wynikającym z nowo utworzonego klasy bazowej przykład (B.prototype = nowy a). Konstruktor klasy podstawowej wykonuje co najmniej niepotrzebny kod iw najgorszym wypadku może się zawiesić bez argumentów wejściowych, które nie powinny być sztucznie tworzone tylko w celu wyprowadzenia. Co więcej, funkcje instancji instancji klasy bazowej stają się częścią prototypów klas pochodnych, co jest odpowiednie tylko w przypadku zwykłego szczęścia.
Pozwala być jasne! Jeśli dziedziczysz z instancji klasy bazowej utworzonej przez konstruktor klasy podstawowej (B.prototype = new A), to nie dziedziczysz bezpośrednio z klasy bazowej !! Utworzono pośrednika w łańcuchu dziedziczenia, a mianowicie instancję klasy podstawowej !!! Oooo !!!! Jest to nieefektywne, ponieważ istnieje dodatkowa głębia w wyszukiwaniu dziedziczonych wartości właściwości w łańcuchu dziedziczenia. Ta głębokość gromadzi się za każdym razem, gdy popełniasz ten błąd.
Więc jaki jest właściwy sposób. Zamiast B.prototype = new A powinieneś napisać: B.prototype = Object.create (A.prototype). To może nie być dostępny w 09. Jednak w 09 wciąż było
protoProxy = function(myClass)
{
function foo(){};
foo.prototype = myClass.prototype;
return new foo();
}
jako substytut Object.create. Zamiast B.prototype = new A powinieneś napisać: B.prototype = protoProxy (A) w 09;
z góry dzięki. –
przed tym, co –
zaliczki dzięki –