es6katas.org 套路 #6:箭头函数 - 绑定
es6katas.org Kata #6: arrow functions - binding
我正在学习 ECMAScript6 es6katas.org, which is great and highly recommended. I am currently stuck at this 关于箭头函数的非常基本的套路。我似乎无法理解作者在第二个测试中的意思:
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);
});
有人可以帮忙解决吗?
我认为它希望您将 getFunction
更改为 return this
。
原因:粗箭头函数的 this
在定义时绑定到定义上下文(bound
对象) - 当 bound
创建时 - 而不是动态 this
像普通函数一样。
我正在学习 ECMAScript6 es6katas.org, which is great and highly recommended. I am currently stuck at this 关于箭头函数的非常基本的套路。我似乎无法理解作者在第二个测试中的意思:
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);
});
有人可以帮忙解决吗?
我认为它希望您将 getFunction
更改为 return this
。
原因:粗箭头函数的 this
在定义时绑定到定义上下文(bound
对象) - 当 bound
创建时 - 而不是动态 this
像普通函数一样。