我想做这个:
class Parent {
static myMethod1(msg) {
// myMethod2 is undefined
this.constructor.myMethod2(msg);
}
}
class Child extends Parent {
static myMethod2(msg) {
console.log('static', msg);
}
}
Child.myMethod1(1);
但是,这是行不通的。这是可能的一些其他的方式?我不想在父硬编码Child.myMethod2我知道会的工作,因为我想随机子类能够定义/覆盖静态方法,但请从父该方法无需事先知道哪些类是孩子。
myMethod2
是不确定的,因为代码是错误的。 this
是在静态方法类的构造,并且this.constructor
是一个构造,即Function
的构造函数。它应该是:
class Parent {
static myMethod1(msg) {
this.myMethod2(msg);
}
}
这是反模式,因为Parent
没有myMethod2
,并Parent.myMethod1()
会导致错误。它都应包含无操作myMethod2
,或标注为抽象类从不直接访问。