我想将类方法分离到自己的文件中。例如,如果我在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
功能可以使用它?
答案 0 :(得分:2)
tl; dr - 你不能。
如果你导出一个箭头函数,那么该函数会将它的词汇this
绑定到全局对象(非严格模式),或者它将是未定义的(严格模式)。
箭头功能应该如何工作。如果您需要使用函数来获取类对象this
,则必须使用标准function () {}
正文。