为什么从函数引用调用静态类方法时未定义,而直接调用时未定义?

时间:2018-09-28 17:09:39

标签: javascript ecmascript-6 static-methods es6-class

我正在尝试从对该方法的引用中调用类的静态方法,但是当我这样做时,“ this”变量是未定义的:

class SomeClass {
  static test() {
    console.log(this);
  }
}

SomeClass.test(); // logs reference to class as desired
let fn = SomeClass.test;
fn(); // logs undefined
let fn2 = () => { SomeClass.test(); }
fn2(); // logs reference to class as desired

为什么在fn()调用中未定义“ this”?有没有办法确保其定义?将方法包装在fn2()之类的匿名函数中可以解决此问题,但是有点难看。 fn1的这种行为是否使Java设计无法对此进行定义?

0 个答案:

没有答案