2016-03-21 37 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

我明白了,謝謝。 –

相關問題