Heim > Web-Frontend > js-Tutorial > Object.create vs. new: Wann sollte Which für die JavaScript-Vererbung verwendet werden?

Object.create vs. new: Wann sollte Which für die JavaScript-Vererbung verwendet werden?

Barbara Streisand
Freigeben: 2024-11-15 12:06:03
Original
1078 Leute haben es durchsucht

Object.create vs. new: When to Use Which for JavaScript Inheritance?

JavaScript-Vererbung: Object.create vs. new

In JavaScript kann die Vererbung durch verschiedene Methoden erreicht werden. Zwei häufig diskutierte Ansätze sind die Verwendung des Schlüsselworts new und Object.create. Bei der Erkundung der Vererbung kann die schiere Anzahl der verfügbaren Optionen entmutigend sein.

Um die am häufigsten akzeptierte Methode zum Erreichen der Vererbung in JavaScript zu verdeutlichen, untersuchen wir die Unterschiede zwischen Object.create und new.

Object.create

Object.create wird verwendet, um ein neues Objekt zu erstellen, das von einem anderen Objekt erbt. Die Konstruktorfunktion des übergeordneten Objekts wird nicht aufgerufen. Dies ist nützlich, wenn Sie nur ein neues Objekt erstellen möchten, das bestimmte Eigenschaften und Methoden von einem übergeordneten Objekt erbt.

const baseModel = {
  property1: "value1",
  method1: function() {}
};

const newModel = Object.create(baseModel);
Nach dem Login kopieren

In diesem Beispiel erbt newModel die Eigenschaft1 und Methode1 von baseModel.

new

Das Schlüsselwort new ruft die Konstruktorfunktion einer Klasse oder eines Objekts auf und erstellt eine neue Instanz dieser Klasse oder dieses Objekts. Es ruft die Konstruktorfunktion auf und initialisiert somit das neue Objekt mit bestimmten Eigenschaften und Methoden.

class BaseModel {
  constructor(property1) {
    this.property1 = property1;
  }

  method1() {}
}

const newModel = new BaseModel("value1");
Nach dem Login kopieren

In diesem Beispiel ist newModel eine Instanz der BaseModel-Klasse, wobei die Eigenschaft1 auf „value1“ initialisiert ist.

Den richtigen Ansatz wählen

Die Wahl zwischen Object.create und new hängt davon ab, ob Sie ein neues Objekt erstellen müssen, das Eigenschaften und Methoden erbt, oder die Konstruktorfunktion des übergeordneten Objekts aufrufen müssen Objekt.

  • Verwenden Sie Object.create, wenn Sie nur ein Objekt erstellen möchten, das von einem anderen Objekt erbt, ohne den Konstruktor aufzurufen.
  • Verwenden Sie new, wenn Sie eine Instanz von a erstellen müssen Klasse oder Objekt und rufen Sie deren Konstruktor auf.

Im gegebenen Szenario möchten Sie ein Basisobjektmodell haben, das Sie mit RestModel oder LocalStorageModel erweitern können. Die Verwendung von Object.create (oder seinem Shim) ist der richtige Weg, da Sie keine neue Instanz von Model erstellen und seinen Konstruktor aufrufen möchten.

RestModel.prototype = Object.create(Model.prototype);
Nach dem Login kopieren

Wenn Sie den Model-Konstruktor für RestModels aufrufen möchten, Verwenden Sie stattdessen call() oder apply():

function RestModel() {
    Model.call(this); // apply Model's constructor on the new object
    ...
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonObject.create vs. new: Wann sollte Which für die JavaScript-Vererbung verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage