什么是绑定ES6课程的最好方法"这个"箭头功能?

时间:2016-03-21 00:29:01

标签: javascript ecmascript-6

我想将类方法分离到自己的文件中。例如,如果我在test.js中有一个这样的简单类:

export default class TestClass {

    testFunction(...args) {
        return require('./test-function').apply(this, args);
    }

}

然后在test-function.js方法中:

export default function() {
    /* `this` keyword works fine */
}

但是,如果我将其更改为箭头功能,那么不再起作用(因为词法作用域?):

export default () => {
    /* `this` doesn't work anymore */
}

如何正确绑定this以便我的箭头test功能可以使用它?

1 个答案:

答案 0 :(得分:2)

tl; dr - 你不能。

如果你导出一个箭头函数,那么该函数会将它的词汇this绑定到全局对象(非严格模式),或者它将是未定义的(严格模式)。

箭头功能应该如何工作。如果您需要使用函数来获取类对象this,则必须使用标准function () {}正文。