猿问

ES6的class能否在父类中指定调用父类自身的方法

class A {
  x() {  }
  y() { 
    Object.getPrototypeOf(Object.getPrototypeOf(this)).x.call(this) //??
  }
}class B extends A {
  x() {    // 方法重写 
  }
  y() { 
    super.x()
  }
}const b = new B()
b.y()

我知道在子类中用super.x()可以调用父类的方法,但这个方法本身定义在父类中的话应该怎么写?
目前用原型链是可以临时解决,但是如果直接new A还是有问题,而且即用class又用原型感觉很奇怪,有没有比较优雅的写法呢?


qq_笑_17
浏览 593回答 1
1回答

慕无忌1623718

假设A为父类 B为子类A类有x和y方法 并且B类也有x和y方法 显然 B类的方法会覆盖A类同名方法如果你想在B类中调用A类中的同名方法 可以这样做const b = new B()const x = A.x x.call(b)这样就实现了在B类实例中调用父类A的x方法
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答