尽管这样操作能达到预期的效果。
class ClassWithStaticMethod {
static staticMethod() {
return ('staticMethod');
};
static staticMethod2() {
const yee = this.staticMethod();
return 'staticMethod2 '+yee;
};
}
console.log(ClassWithStaticMethod.staticMethod2());
//staticMethod2 staticMethod
这是,
i) 使用类名可以访问staticMethod()方法,
ii) 这个方法可以使用"this"调用同一类中的另一个静态方法,
但这并不起作用。
class ClassWithStaticMethod {
static staticMethod = () => {
return ('staticMethod');
};
static staticMethod2 = () => {
const yee = this.staticMethod;
return 'staticMethod2 '+yee;
};
}
console.log(ClassWithStaticMethod.staticMethod2());
//staticMethod2 undefined
就我的理解,我仍然可以访问staticMethod()方法,但是我无法访问第一个方法中的其他方法。我会得到未定义的结果,如果我使用
const yee = this.staticMethod();
我遇到了一个错误
错误信息:TypeError: _this.staticMethod 不是一个函数
this
作用域。(这就是为什么如果你想要更好的调用堆栈,我们必须使用function()
。)在第二种方法中,this
指的是调用上下文:window
。 - weirdpandathis
的常规方法调用行为,那么请使用常规方法调用,而不是箭头调用。 - jfriend00