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?
thisWert ändern , indem Sie zuerst das chopperObjekt erstellen und dann die Zuweisung in einer Funktion thisausführen, die auf dieses Objekt verweist. Dies kann mit einer Konstruktorfunktion ziemlich sauber erreicht werden.
console.log()dem Ergebnis des Methodenaufrufs. Es klappt.
thisanders behandelt wird . Es wird durch die lexikalische Umgebung definiert, in der die Funktion erstellt wurde. Dies bedeutet, dass derthisWert, in dem Sie diechopperVariable erstellen, derthisWert der Funktion ist. Mit anderen Worten, es wird nicht auf daschopperObjekt verwiesen .