Pfeilfunktionen in ES6-Objekten
In ES6 können Sie Methoden in Objekten definieren, indem Sie sowohl die traditionelle Funktionssyntax als auch die eingeführte Kurzmethodensyntax verwenden in der Sprache:
var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } };
var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
Bei der Verwendung von Pfeilfunktionen können jedoch Einschränkungen auftreten Objektmethoden. Beispielsweise führt die Verwendung der folgenden Syntax zu einem Fehler:
var chopper = { owner: 'John', getOwner: () => { return this.owner; } };
oder
var chopper = { owner: 'John', getOwner: () => (this.owner) };
Erklärung
Pfeilfunktionen haben bestimmte Eigenschaften Dadurch sind sie für die Verwendung als Objektmethoden ungeeignet.
Wenn Sie also eine Pfeilfunktion innerhalb eines ES6-Objekts definieren, erfolgt dies innerhalb der Funktion bezieht sich auf den Kontext, in dem das Objekt erstellt wurde. Wenn Sie beispielsweise den Objekt-Chopper innerhalb eines globalen Bereichs definieren, bezieht sich dieser innerhalb von getOwner auf den globalen Bereich und nicht auf das Chopper-Objekt.
Lösung
Zu schreiben Objektmethoden in ES6 sollten Sie die traditionelle Funktionssyntax oder die speziell für Objekte entwickelte Kurzmethodensyntax verwenden:
var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; // or var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
Diese Methoden verwenden die Korrigieren Sie diese Bindung, die sich auf das Chopper-Objekt bezieht.
Das obige ist der detaillierte Inhalt vonWarum kann ich in ES6 keine Pfeilfunktionen für Objektmethoden verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!