在Java Script中,如果一个子类继承了一个父类,并且在子类中覆盖了父类的某个方法,但又想在子类中调用父类被覆盖的方法,可以使用以下方式:
super
关键字:在子类中,可以使用super
关键字来调用父类的方法。通过super
关键字,可以访问父类的属性和方法。在覆盖的方法中,使用super.方法名()
来调用父类的方法。例如,假设有一个父类Parent
和一个子类Child
,子类覆盖了父类的方法methodA
,可以通过以下方式调用父类的方法:
class Parent {
methodA() {
console.log("父类的方法A");
}
}
class Child extends Parent {
methodA() {
super.methodA(); // 调用父类的方法
console.log("子类覆盖的方法A");
}
}
const child = new Child();
child.methodA();
输出结果为:
父类的方法A
子类覆盖的方法A
父类.prototype.方法名.call(this)
来调用父类的方法,其中this
指向当前子类的实例。例如,假设有一个父类Parent
和一个子类Child
,子类覆盖了父类的方法methodA
,可以通过以下方式调用父类的方法:
function Parent() {}
Parent.prototype.methodA = function() {
console.log("父类的方法A");
};
function Child() {}
Child.prototype.methodA = function() {
Parent.prototype.methodA.call(this); // 调用父类的方法
console.log("子类覆盖的方法A");
};
const child = new Child();
child.methodA();
输出结果为:
父类的方法A
子类覆盖的方法A
以上是在Java Script中从子类中被覆盖的方法中调用超类方法的两种常用方式。这样可以保留父类方法的功能,并在子类中添加额外的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云