es6katas.org Kata#6:箭头功能 - 绑定

时间:2015-09-27 17:14:26

标签: ecmascript-6 arrow-functions

我正在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);
});

有人可以协助搞清楚吗?

1 个答案:

答案 0 :(得分:5)

我认为您希望将getFunction更改为this

原因:胖箭头函数this在定义上下文时定义了上下文(bound对象) - 创建bound时 - 而不是动态this与普通函数一样。