Я понимаю, что это бессмысленная вещь, но я не понимаю, почему она не работает.ECMA Script 6 Arrow функции как свойства объекта
var person = {
_name: "Steve",
doSomething:() => console.debug("Doing stuff with ", this._name)
}
«это» связано с глобальным объектом, а не с объектом, на который был вызван объект getName. Я ожидал, что выше эквивалентно:
var person = {
_name: "Steve",
doSomething: function() { console.debug("Doing stuff with ", this._name) }
}
(я знаю, что вы должны написать это)
var person = {
_name: "Steve",
doSomething() {
console.debug("Doing stuff with ", this._name)
}
}
«Я знаю, что вы должны написать это так» - Нет, не стоит. – thefourtheye
Странно: в Chrome версии 38.0.2125.104 (64-разрядная версия) 'this' все еще ссылается на объект' window'. – thefourtheye
@thefourtheye уверен, что вы называете его 'person.getName()'? – simonzack