2016-03-21 36 views
-1

我想将类方法分离到自己的文件中。例如,如果我有一个简单的类像这样test.js将ES6类的“this”绑定到箭头函数的最佳方法是什么?

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

请参阅[箭头函数与函数声明/表达式:它们是否等价/可交换?](http://stackoverflow.com/q/34361379/218196)。 –

回答

2

tl; dr - 你不能。

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

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

+0

我明白了,谢谢。 –

相关问题