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 像普通函数一样。