Heim  >  Artikel  >  Web-Frontend  >  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
Barbara StreisandOriginal
2024-11-15 12:06:03994Durchsuche

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);

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");

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);

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
    ...
}

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!

Stellungnahme:
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