JavaScript-Vererbung: Object.create vs. new
Das Konzept der Vererbung in JavaScript kann verwirrend sein, da es verschiedene Ansätze dafür gibt Es. Ziel dieses Artikels ist es, die am häufigsten akzeptierten Methoden zu klären und eine Lösung für Ihr spezifisches Szenario bereitzustellen.
Object.create und new verstehen
Object.create ist eine Methode zum Erstellen ein neues Objekt durch Erben von einem vorhandenen Objekt. Dies ist nützlich, wenn Sie ein Basisobjekt erstellen und es dann um zusätzliche Eigenschaften und Methoden erweitern möchten. Die Syntax für Object.create lautet:
Object.create(prototype[, propertiesObject])
Andererseits wird das Schlüsselwort new verwendet, um eine neue Instanz eines Objekts zu erstellen und aufzurufen seine Konstruktorfunktion. Die Syntax für new lautet:
new ConstructorFunction([arguments])
Auswahl der richtigen Methode für die Vererbung
Die Wahl zwischen Object.create und Neu hängt von Ihren spezifischen Anforderungen ab. Object.create eignet sich ideal zum Erstellen von Basisobjekten, von denen Sie erben möchten, ohne deren Konstruktoren aufzurufen. Zum Beispiel:
const Model = { // Base object properties and methods... }; const RestModel = Object.create(Model);
Wenn Sie jedoch die Konstruktorfunktion des Basisobjekts auf dem erbenden Objekt aufrufen möchten, sollten Sie new verwenden. Zum Beispiel:
function Model() { // Base object constructor... } function RestModel() { Model.call(this); // Additional properties and methods... }
Lösung für Ihr Szenario
In Ihrem Fall möchten Sie das RestModel vom Modellbasisobjekt erben. Um dies mit Object.create zu erreichen, würden Sie Folgendes tun:
RestModel.prototype = Object.create(Model.prototype);
Dadurch wird ein neuer RestModel-Prototyp erstellt, der von erbt Modell-Prototyp.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3