Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie erstellt der „new'-Operator in JavaScript Objekte und stellt deren Vererbung her?

Linda Hamilton
Freigeben: 2024-10-27 01:46:30
Original
614 Leute haben es durchsucht

How Does the `new` Operator in JavaScript Create Objects and Establish Their Inheritance?

Entmystifizierung des Innenlebens des neuen Operators in JavaScript

Das missverstandene Terrain von JavaScript, ähnlich der Prototypenkette, enthüllt eine grundlegende Abfrage : Wie orchestriert der „neue“ Operator die Objekterstellung und definiert deren Abstammung und Kernattribute?

Die Essenz von Neu

Um dieses Rätsel zu lösen, betrachten Sie eine alternative Illustration :

function NEW(f) {
  var obj, ret, proto;

  // Examine `f.prototype`
  proto = Object(f.prototype) === f.prototype ? f.prototype : Object.prototype;

  // Inherit from `proto`
  obj = Object.create(proto);

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

  // Determine return type
  if (Object(ret) === ret) { // Object returned?
    return ret;
  }

  // Otherwise, return inherited object
  return obj;
}
Nach dem Login kopieren

Den Mechanismus verstehen

Der neue Operator basiert auf dem internen [[Konstrukt]]-Mechanismus, der:

  1. Erstellt ein natives Objekt.
  2. Setzt seinen [[Prototyp]] auf den Prototyp der Funktion oder Object.prototype (wenn der Prototyp primitiv ist).
  3. Ruft die Funktion mit dem Objekt als „this“ auf. "
  4. Gibt das intern erstellte Objekt zurück, wenn die Funktion ein Grundelement zurückgibt, oder das von der Funktion zurückgegebene Objekt, wenn sie ein Objekt zurückgibt.

Praktische Anwendung

Veranschaulichung der Leistungsfähigkeit dieses Konzepts:

function Foo(arg) {
  this.prop = arg;
}
Foo.prototype.inherited = 'baz';

var obj = NEW(Foo, 'bar');
Nach dem Login kopieren

Dadurch wird ein von Foo erbendes Objekt mit der geerbten Eigenschaft „inherited“ und der Eigenschaft „prop“ mit dem Wert „bar“ erstellt.

Das obige ist der detaillierte Inhalt vonWie erstellt der „new'-Operator in JavaScript Objekte und stellt deren Vererbung her?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!