Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist „new.target' und wie funktioniert es in ES6-Klassen?

Linda Hamilton
Freigeben: 2024-10-30 03:52:03
Original
664 Leute haben es durchsucht

 What is

Verstehen von „new.target“ in ECMAScript 2015

In der ECMAScript 2015-Spezifikation wird das Schlüsselwort „new.target“ kurz vorgestellt dreimal erwähnt. Während MDN einen gewissen Kontext bereitstellt, bleibt dieser etwas vage.

Was ist „new.target“?

„new.target“ ist eine Metaeigenschaft, auch bekannt als Neues Ziel. Es ruft den aktuellen Wert des internen Slots [[NewTarget]] der Nicht-Pfeil-Funktionsumgebung ab. Dieser Wert wird festgelegt, wenn eine Funktion mit dem Schlüsselwort „new“ aufgerufen wird.

Zweck von „new.target“

Sein Hauptzweck ist bestimmen ob eine Funktion als Konstruktor aufgerufen wurde oder nicht. Darüber hinaus spielt es eine entscheidende Rolle bei der Implementierung von ES6-Klassen.

Wie ES6-Klassen „new.target“ nutzen

Wenn ein ES6-Klassenkonstruktor über „ aufgerufen wird neues X“, der „this“-Wert wird nicht initialisiert. Das Objekt ist noch nicht erstellt. Die Instanz sollte jedoch vom .prototype des ursprünglich aufgerufenen Konstruktors erben.

„new.target“ verfolgt den „äußersten“ Konstruktor, der den „new“-Aufruf während super()-Aufrufen erhalten hat. Die OrdinaryCreateFromConstructor-Prozedur verwendet „new.target“ anstelle des aktuell ausgeführten Konstruktors, um die korrekte Vererbung sicherzustellen.

Beispiel:

<code class="javascript">class Parent {
  constructor() {
    console.log(new.target); // Child!
  }
}
class Child extends Parent {
  constructor() {
    super();
    console.log(this);
  }
}

new Child;</code>
Nach dem Login kopieren

In diesem Beispiel „new .target“ gibt „Child“ innerhalb des Parent-Konstruktors aus, was darauf hinweist, dass es mit dem Schlüsselwort „new“ aufgerufen wurde.

Das obige ist der detaillierte Inhalt vonWas ist „new.target' und wie funktioniert es in ES6-Klassen?. 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!