我正在es6katas.org学习ECMAScript6,这非常棒,值得推荐。我目前卡在关于箭头功能的this相当基本的kata上。我似乎无法理解作者在第二次测试中的意思:
class LexicallyBound {
getFunction() {
return () => {
return new LexicallyBound();
}
}
getArgumentsFunction() {
return function() {return arguments}
}
}
it('bound at definition time, use `=>` ', function() {
var bound = new LexicallyBound();
var fn = bound.getFunction();
assert.strictEqual(fn(), bound);
});
有人可以协助搞清楚吗?
答案 0 :(得分:5)
我认为您希望将getFunction
更改为this
。
原因:胖箭头函数this
在定义上下文时定义了上下文(bound
对象) - 创建bound
时 - 而不是动态this
与普通函数一样。