Heim >Web-Frontend >js-Tutorial >Können Pfeilfunktionen als ES6-Objektmethoden verwendet werden?

Können Pfeilfunktionen als ES6-Objektmethoden verwendet werden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-21 19:12:17899Durchsuche

Can Arrow Functions Be Used as ES6 Object Methods?

Pfeilfunktionen in ES6-Objekten: Ein Syntax-Limbo

In ES6 können Objektmethoden mithilfe der traditionellen Funktionssyntax oder der prägnanten Methodensyntax definiert werden. Können wir jedoch die neu eingeführten Pfeilfunktionen in diesem Zusammenhang nutzen?

Versuchsversuche und aufgetretene Fehler:

Versuche, Pfeilfunktionen als Objektmethoden zu verwenden, wie unten gezeigt , führen zu einem Fehler:

var chopper = {
    owner: 'John',
    getOwner: () => { return this.owner; }
};

Begründung:

Pfeilfunktionen funktionieren in Objektmethoden nicht wie erwartet, da sie den lexikalischen Wert „this“ erfassen, der außerhalb des Kontexts des Objekts liegt. Dies führt dazu, dass sich dies auf das globale This oder das This der lexikalisch einschließenden Funktion bezieht, nicht auf die Objektinstanz.

Alternativen und Empfehlungen:

Für Objektmethoden traditionell Es sollte die Funktionssyntax oder die ES6-Methodensyntax verwendet werden:

// Traditional function syntax
var chopper = {
    owner: 'Zed',
    getOwner: function() { return this.owner; }
};

// ES6 method syntax
var chopper = {
    owner: 'Zed',
    getOwner() { return this.owner; }
};

Unbound Arrow Functions (Abgelehnter Vorschlag):

Es gab einen Vorschlag für ungebundene Pfeilfunktionen, der eine Syntax ähnlich den Pfeilfunktionen einführen würde, jedoch mit einer separaten this-Bindung. Dieser Vorschlag wurde jedoch abgelehnt, da er lediglich die Standardgröße reduzierte, ohne neue Funktionalität anzubieten.

Das obige ist der detaillierte Inhalt vonKönnen Pfeilfunktionen als ES6-Objektmethoden 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