Heim > Web-Frontend > js-Tutorial > Wie arbeitet der „new'-Operator hinter den Kulissen, um Objekte in JavaScript zu erstellen und zu initialisieren?

Wie arbeitet der „new'-Operator hinter den Kulissen, um Objekte in JavaScript zu erstellen und zu initialisieren?

Patricia Arquette
Freigeben: 2024-10-29 03:21:02
Original
554 Leute haben es durchsucht

How does the `new` operator work behind the scenes to create and initialize objects in JavaScript?

Wie der neue Operator Objekte in JavaScript erstellt und initialisiert

Der neue Operator ist ein leistungsstarkes Schlüsselwort in JavaScript, das zum Erstellen neuer Objekte verwendet wird. Es spielt eine entscheidende Rolle in der objektorientierten Programmierung, kann jedoch schwierig zu verstehen sein, insbesondere in Bezug auf die Prototypenkette.

Den neuen Operator verstehen

Bei der Verwendung Beim neuen Operator mit einer Funktion laufen intern die folgenden Schritte ab:

  1. Ein neues natives Objekt wird erstellt.
  2. Die interne [[Prototype]]-Eigenschaft des Objekts wird auf gesetzt Prototypeigenschaft der Funktion.
  3. Die Funktion wird mit dem neu erstellten Objekt als diesem Wert aufgerufen.
  4. Wenn die Funktion einen primitiven Wert zurückgibt, wird das intern erstellte Objekt zurückgegeben.
  5. Andernfalls wird das intern erstellte Objekt aufgegeben, wenn die Funktion ein Objekt zurückgibt.

Eine Beispielimplementierung

Um die Funktionalität des neuen Operators zu demonstrieren, Hier ist eine entsprechende Implementierung:

<code class="javascript">function NEW(f) {
  let obj, ret, proto;

  // Check if `f.prototype` is an object
  proto = f.prototype ? f.prototype : Object.prototype;

  // Create an object inheriting from `proto`
  obj = Object.create(proto);

  // Call the function with `obj` as `this`
  ret = f.apply(obj, Array.prototype.slice.call(arguments, 1));

  // Return the object from the function or the newly created `obj`
  return Object(ret) === ret ? ret : obj;
}</code>
Nach dem Login kopieren

Beispielverwendung

Betrachten Sie dieses Beispiel:

<code class="javascript">function Foo(arg) {
  this.prop = arg;
}
Foo.prototype.inherited = 'baz';

let obj = NEW(Foo, 'bar');
console.log(obj.prop); // Output: "bar"
console.log(obj.inherited); // Output: "baz"
console.log(obj instanceof Foo); // Output: true</code>
Nach dem Login kopieren

Dies zeigt, wie der neue Operator ein Objekt erstellt die vom Prototyp der Funktion erbt und den Zugriff auf ihre Eigenschaften und Methoden ermöglicht.

Das obige ist der detaillierte Inhalt vonWie arbeitet der „new'-Operator hinter den Kulissen, um Objekte in JavaScript zu erstellen und zu initialisieren?. 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