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又用原型感觉很奇怪,有没有比较优雅的写法呢?
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
假设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方法
添加回答
举报
0/150
提交
取消