In ES6 sind beide legal:
var chopper = {
owner: 'Zed',
getOwner: function() { return this.owner; }
};
und als Abkürzung:
var chopper = {
owner: 'Zed',
getOwner() { return this.owner; }
}
Ist es möglich, auch die neuen Pfeilfunktionen zu verwenden? Beim Versuch so etwas
var chopper = {
owner: 'John',
getOwner: () => { return this.owner; }
};
oder
var chopper = {
owner: 'John',
getOwner: () => (this.owner)
};
Ich erhalte eine Fehlermeldung, die darauf hinweist, dass die Methode keinen Zugriff auf hat this
. Ist dies nur ein Syntaxproblem oder können Sie Fat-Pipe-Methoden nicht in ES6-Objekten verwenden?
this
Wert ändern , indem Sie zuerst das chopper
Objekt erstellen und dann die Zuweisung in einer Funktion this
ausführen, die auf dieses Objekt verweist. Dies kann mit einer Konstruktorfunktion ziemlich sauber erreicht werden.
console.log()
dem Ergebnis des Methodenaufrufs. Es klappt.
this
anders behandelt wird . Es wird durch die lexikalische Umgebung definiert, in der die Funktion erstellt wurde. Dies bedeutet, dass derthis
Wert, in dem Sie diechopper
Variable erstellen, derthis
Wert der Funktion ist. Mit anderen Worten, es wird nicht auf daschopper
Objekt verwiesen .