Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ECMA脚本6箭头用作对象属性_Javascript_Ecmascript 6_Arrow Functions - Fatal编程技术网

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)
   }
}