Javascript ECMA脚本6箭头用作对象属性
我意识到这是一件毫无意义的事情,但我不明白为什么它不起作用Javascript ECMA脚本6箭头用作对象属性,javascript,ecmascript-6,arrow-functions,Javascript,Ecmascript 6,Arrow Functions,我意识到这是一件毫无意义的事情,但我不明白为什么它不起作用 var person = { _name: "Steve", doSomething: () => console.debug("Doing stuff with ", this._name) } “this”绑定到全局对象,而不是上调用的对象getName。我希望上述内容相当于: var person = { _name: "Steve", doSomething: function() { c
var person = {
_name: "Steve",
doSomething: () => console.debug("Doing stuff with ", this._name)
}
“this”绑定到全局对象,而不是上调用的对象getName。我希望上述内容相当于:
var person = {
_name: "Steve",
doSomething: function() { console.debug("Doing stuff with ", this._name) }
}
(我知道你应该这样写) 发件人: 箭头函数捕获封闭上下文的此值
这与函数不同。“我知道你应该这样写”-不,你不应该。奇怪的是:在Chrome 38.0.2125.104版(64位)中,
这个仍然引用窗口对象。@thefourtheye确定你是像person.getName()一样调用它
?@thefourtheye我想不出你为什么说你不应该使用那种风格-也许我使用get函数混淆了这个问题,假设该函数做了其他一些简单返回值的事情。我想,等效的应该是function(){return console.debug(“Doing this._name)}
@RahilWazir哦,我没有看到类,我以为它是一个函数。顺便说一句-这是有效的语法,请看@Woody-Hmm我以为那部分是从ES6中被删掉的,可能是其他东西,我已经把那部分从我的答案中删除了。
var person = {
_name: "Steve",
doSomething() {
console.debug("Doing stuff with ", this._name)
}
}