Prototyp zur Vererbung kopieren?

Ich habe mit JavaScript herumgespielt und dabei insbesondere die objektorientierte Programmierung mit Klassen und so weiter simuliert.

Ich wusste über diese Art der Vererbung Bescheid

MyClass.prototype = new AnotherClass();

Aber ich war nicht zufrieden, es gefiel mir nicht, wie ich den Konstrukteur von anrufen mussteAnotherClass. Also spielte ich herum und kam auf etwas, das zu funktionieren schien und im Grunde eine zweite Meinung wollte.

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

    return new CloneFactory();
}

MyClass.prototype = clone(AnotherClass.prototype);

Durch Klonen des Prototyps erhalten wir eine neue Kopie und weisen diese zuMyClassDer Prototyp von, sodass das Ändern der geerbten Eigenschaften keine Auswirkungen auf die Eigenschaften des übergeordneten Prototyps hat. So würde es seinMyClass.prototype = AnotherClass.prototype.

Ich habe Stresstests durchgeführt und dies ist unter bestimmten Umständen effizienter, d. H. Wenn der Konstruktor des übergeordneten Elements viel Code enthält, ansonsten ist es ungefähr gleich. Ein weiterer Vorteil (oder zumindest finde ich es vorteilhaft) ist, dass es in gewissem Maße Informationen erlaubt, die sich vor den Unterklassen verstecken. Alle privilegierten Methoden und Mitglieder werden NICHT vererbt.

Gibt es eine große Gefahr, die ich übersehen habe?

Ich bin kein Experte für JavaScript, eigentlich bin ich ziemlich neu in JavaScript, daher würde ich gerne eine zweite Meinung dazu abgeben, da ich über Google anscheinend nichts finden kann. Ich möchte keinen schlechten Code implementieren :)!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage