此问题在此处已有答案:
ES6 - Call static method within a class(3个答案)
昨天关门了。
目前,我有一个基类,其中大部分是静态方法,其行为与我所希望的不同。
它有一个主静态方法,它会调用类中的其他静态方法,我想让它做的是,如果我创建一个子类,覆盖一个或多个在基类中调用的方法,它会调用那些版本,而不是它自己的,如果它们不是由它使用的子类实现的。
这里有一个很基本的例子来说明我的意思
class Parent {
static handleStuff(method, data) {
switch (method) {
case "1":
this.methodOne(data);
break;
case "2":
this.methodTwo(data);
break;
}
}
static methodOne(data) {
console.log('not implemented');
}
static methodTwo(data) {
console.log('not implemented');
}
}
class Child extends Parent {
static methodOne(data) {
console.log(data);
}
}
Child.handleStuff("1", "stuff"); // expecting it to print "stuff" but currently get "not implemented"
Child.handleStuff("2", "more stuff"); // expecting it to print "not implemented"
这在Javascript中是可能的吗?我知道它的对象并不像人们所期望的那样工作。
1条答案
按热度按时间efzxgjgh1#
你可以尝试使用类继承吗?要创建类继承,请使用extends关键字。