Ich verwende die Prototyp-Vererbung wie in Ссылка
beschrieben %Vor%Jetzt kann ich String-Funktionen und MyString-Funktionen auf MyString-Instanzen verwenden.
Aber da __proto__
veraltet ist, nicht Standard ist und vermieden werden sollte, was wäre der beste Weg, um Objekte zu vererben?
Ich fand Ссылка und es sieht immer noch etwas komplex und etwas übertrieben aus, verglichen mit einer Einzellinie Code:)
Edit: Danke für deine Antworten!
Die ECMAScript 5-Spezifikation enthält eine neue Funktion Object.create()
, mit der Sie ein generisches Objekt mit einem bestimmten Prototyp erstellen können. Um das gewünschte Verhalten zu erhalten, tun Sie Folgendes:
Object.create
kann verwendet werden, um eine beliebig lange Prototyp-Kette zu erstellen, einfach durch Ketten-Rückgabewerte entlang. Leider gibt es uns nicht die Möglichkeit, die Prototypkette eines existierenden Objekts zu verändern (damit löst es nicht das Array- "Vererbungs" -Problem)
Wenn Sie sagen:
%Vor% Sie sagen, dass die Laufzeit auf String.prototype
für Eigenschaften von MyString.prototype
schauen sollte, die nicht direkt in MyString.prototype
deklariert sind. Aber das ist eine umständliche Art zu sagen, was Sie versuchen zu sagen, dass Instanzen von MyString
sollten die gleichen Eigenschaften und Methoden wie ein String
haben.
Sie sagen das so:
%Vor% __proto__
ist eine Eigenschaft von object Instanzen . Es ist die Laufzeitverbindung zurück zu dem Objekt, das als der Prototyp dieser Instanz dient. Auf der anderen Seite ist prototype
eine Eigenschaft von Konstruktorfunktionen. Es ist die Vorlage für alle Objekte, die mit diesem Konstruktor erstellt wurden.
Tags und Links javascript inheritance prototype