Skopiuj prototyp do dziedziczenia?

Bawiłem się w JavaScript, w szczególności symulując programowanie obiektowe za pomocą klas i tak dalej.

Wiedziałem o tym sposobie osiągnięcia dziedzictwa

MyClass.prototype = new AnotherClass();

Ale nie byłem zadowolony, nie podobało mi się, jak musiałem zadzwonić do konstruktoraAnotherClass. Więc bawiłem się i wymyśliłem coś, co wydawało się działać i zasadniczo chciałbym mieć drugą opinię.

function clone (obj)
{
    function CloneFactory () {}
    CloneFactory.prototype = obj;

    return new CloneFactory();
}

MyClass.prototype = clone(AnotherClass.prototype);

Klonując prototyp, otrzymujemy nową jego kopię i przypisujemy ją doMyClassprototyp, aby zmiana odziedziczonych właściwości nie wpłynęła na właściwości prototypu rodzica. Tak by to wyglądałoMyClass.prototype = AnotherClass.prototype.

Przeprowadziłem testy warunków skrajnych i jest to bardziej efektywne w pewnych okolicznościach, tj. Gdy w konstruktorze rodzica jest dużo kodu, w przeciwnym razie jest mniej więcej taki sam. Inną korzyścią (lub przynajmniej uważam to za korzystne) jest to, że pozwala ona w pewnym stopniu ukrywać informacje przed podklasami. Wszelkie uprzywilejowane metody i elementy NIE będą dziedziczone.

Czy jest jakiś poważny problem, którego nie widzę?

Nie jestem ekspertem w dziedzinie JavaScript, właściwie jestem całkiem nowym użytkownikiem JavaScript, więc chciałbym mieć drugą opinię na ten temat, ponieważ nie mogę znaleźć niczego za pośrednictwem Google. Nie chcę implementować złego kodu :)!

questionAnswers(1)

yourAnswerToTheQuestion