1

我正在es6katas.org学习 ECMAScript6 ,这非常好,强烈推荐。我目前被困在这个关于箭头功能的非常基本的 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);
});

有人可以帮忙弄清楚吗?

4

1 回答 1

5

我想它是想让你改getFunction回来this

原因:胖箭头函数在定义时(在创建时)this绑定到定义上下文(bound对象),而不是像普通函数那样bound具有动态。this

于 2015-09-27T17:26:36.650 回答