Ecmascript 6 为什么Jest(用于单元测试的JavaScript框架)不能使用“this”?

Ecmascript 6 为什么Jest(用于单元测试的JavaScript框架)不能使用“this”?,ecmascript-6,babeljs,jestjs,Ecmascript 6,Babeljs,Jestjs,使用带有ES2015预设的BabelJS编译。使用节点编译后的代码运行良好。但是在单元测试中,这个是未定义的。为什么会发生这种情况?不知为什么 class Test { static Test1 () { console.log(this); this.Test2(); } static Test2 () { console.log('qwe'); } } Test.Test1(); export default Test; export const Test1 = Test.Te

使用带有ES2015预设的BabelJS编译。使用
节点
编译后的代码运行良好。但是在单元测试
中,这个
未定义的
。为什么会发生这种情况?

不知为什么

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;
这是工作


由于某种原因,罪魁祸首是导出常量Test1=Test.Test1

我在这里测试过,它似乎可以工作,看起来可能是jest Transbile的代码有问题您的示例没有类,
这个
?共享功能似乎不起作用。如果你用你的代码替换代码,它就会工作
class Test {
  static Test1 () { console.log(this); this.Test2();  }
  static Test2 () { console.log('qwe'); }
}

Test.Test1();

export default Test;