从构造函数es6调用静态方法

Ash*_*hok 10 javascript static-methods ecmascript-6

当我试图在javascript中从构造函数调用静态方法时,它表示该方法不存在.

class TestClass {

    constructor(){
        this.staticMethod();
    }

    static staticMethod() {

    }
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试从构造函数调用普通方法,这工作正常.如果静态方法属于类而不是实例,为什么它不允许它们从构造函数调用?

Est*_*ask 19

this.constructor.staticMethod()
Run Code Online (Sandbox Code Playgroud)

可以用来避免直接引用类(特别适用于类继承和粘贴代码).

  • @JonathonNordquist只要在TestClass内部调用就没有区别,但是继承的类有区别。 (2认同)

dlo*_*pez 11

你必须这样称呼它:

TestClass.staticMethod()
Run Code Online (Sandbox Code Playgroud)