Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS:访问child';来自父对象的静态方法_Javascript_Node.js_Static - Fatal编程技术网

Javascript NodeJS:访问child';来自父对象的静态方法

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')

我正在使用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')
  }
}

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。当回答解决了你的问题时,你可以考虑把它标记为“接受”。(选中左侧的复选框)表示问题已解决:)