Javascript NodeJS:访问child';来自父对象的静态方法
我正在使用ES6:Javascript NodeJS:访问child';来自父对象的静态方法,javascript,node.js,static,Javascript,Node.js,Static,我正在使用ES6: class Parent { static sayHello(){ ChildN.sayHi() } } class ChildOne extends Parent { static sayHi(){ console.log('hi from ChildOne') } } class ChildTwo extends Parent { static sayHi(){ console.log('hi from ChildTwo')
class Parent {
static sayHello(){
ChildN.sayHi()
}
}
class ChildOne extends Parent {
static sayHi(){
console.log('hi from ChildOne')
}
}
class ChildTwo extends Parent {
static sayHi(){
console.log('hi from ChildTwo')
}
}
ChildOne.sayHello()
ChildTwo.sayHello()
我想要N个孩子。是否可以在父类内部动态获取子类并调用其静态方法?换句话说,如何在父类中泛化ChildN?通过在父类的静态方法中访问
this
,您将引用子类,因此只需执行this.sayHi()
:
类父类{
静态sayHello(){
这个。sayHi()
}
}
类ChildOne扩展了Parent{
静态sayHi(){
console.log('hi from ChildOne')
}
}
类ChildTwo扩展了Parent{
静态sayHi(){
console.log('hi from ChildTwo')
}
}
ChildOne.sayHello()
ChildTwo.sayHello()
太快了。非常感谢。静态方法存储在哪里?我想知道Javascript是如何从this.sayHello()
中找到静态方法的?我不认为它们存储在原型上。@jfriend00静态方法是直接在类上的属性。这是你可以在这里看到的完全相同的东西:所以当你调用<代码> CyrDun.SayHelLoor(<代码>)时,调用上下文是“代码> ChildOne < /代码>,所以< <代码> < <代码> > <代码> SayHely上的父类也引用了<代码> ChildOne <代码> @ @ sGasiPulsPube。当回答解决了你的问题时,你可以考虑把它标记为“接受”。(选中左侧的复选框)表示问题已解决:)