2017-11-21 5 views
-1
class Test { 
    static Test1() { console.log(this); this.Test2(); } 
    static Test2() { console.log('qwe'); } 
} 

Test.Test1(); 

export default Test; 
export const Test1 = Test.Test1; 

ES2015プリセットのBabelJSでコンパイルされます。 nodeで、コンパイルされたコードはうまく動作します。しかしユニットテストthisundefinedです。なぜこれが起こるのですか?私にはわからないいくつかの理由なぜJest(単体テスト用のJavaScriptフレームワーク)が `this`で動作しないのですか?

+0

ここでテストしたところ、https://repl.it/repls/LumpyJadedIggypopsが動作しているようですが、コードがどのように変質するかに問題があるようです。 – Axnyff

+0

あなたのサンプルにはクラスがなく、 'this'ですか? – notalentgeek

+0

共有機能が動作していないようです。あなたのコードをあなたのものと置き換えると、それはうまくいくでしょう – Axnyff

答えて

0

なぜ....

class Test { 
    static Test1() { console.log(this); this.Test2(); } 
    static Test2() { console.log('qwe'); } 
} 

Test.Test1(); 

export default Test; 
export const Test1 = Test.Test1; 

この

が動作していません!

class Test { 
    static Test1() { console.log(this); this.Test2(); } 
    static Test2() { console.log('qwe'); } 
} 

Test.Test1(); 

export default Test; 

これは機能しています!

なんらかの理由で、原因はexport const Test1 = Test.Test1;です。

関連する問題