【发布时间】:2015-10-17 07:24:54
【问题描述】:
我正在尝试理解 ECMAScript 6 中的箭头函数。
这是我在阅读时遇到的定义:
箭头函数具有隐式
this绑定,这意味着 箭头函数内的this值是远离的 与箭头作用范围内this的值相同 已定义!
根据定义,我认为arrow function 的this 应该包含与定义箭头函数相同的块级值。
代码:
var test = {
id: "123123",
k: {
laptop: "ramen",
testfunc: () => console.log(this)
}
}
console.log(test.k.testfunc);
但是,我从代码中得到了这个结果
function testfunc() {
return console.log(undefined);
}
我认为我会得到以下输出:
{"laptop": "ramen"}
如果我运行这个
console.log(test.k.testfunc());
【问题讨论】:
-
在 FF 中使用
console.log( test.k.testfunc() );时(注意末尾的括号),我得到了对 window.xml 的引用。在定义函数时这是正确的,在我的情况下,当前范围是window。 -
这应该有助于解释:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…"this"。看看我在那里做了什么?
标签: javascript ecmascript-6 arrow-functions