javascript - Javascript如何从构造函数调用覆盖的方法
问题描述
我在javascript a,b中有两个类。b 类扩展 a。类在构造函数中调用方法。我想在 b 类中覆盖这个方法。如何调用可覆盖的方法?当我添加到类 a 到构造函数 this.method() 时,它总是从类中调用方法。
class a {
constructor() {
this.method();
}
method() {
alert("a");
}
}
class b extends a {
constructor() {
super();
}
method() {
alert("b");
}
}
解决方案
如果您事先不知道实例是子类还是超类,您可以通过显式引用超类本身来确保超类调用自己的方法:
A.prototype.method.call(this);
class A {
constructor() {
A.prototype.method.call(this);
}
method() {
console.log("a");
}
}
class B extends A {
constructor() {
super();
}
method() {
console.log("b");
}
}
const b = new B();
推荐阅读
- apache-spark - 运行 Apache Spark 时出错
- python - Python 不能连接 'str' 和 'datetime.timedelta' 对象
- c# - System.Device.Location.Portable 1.0.0 包可能与您的项目不完全兼容
- validation - 训练准确性提高但验证准确性保持不变
- macos - 我们如何使用 Sikuli 自动化 MAC appart 上的应用程序
- vba - 使用 pastespecial xlpastevalues 和 xlpasteformats 组合多个工作表
- ios - 如何在 Swift 和 Realm 中使用惰性 var?
- android - android 分页库 - 我应该使用哪个 DataSource
- perl - 从另一个调用一个 Perl 程序
- python - 如何只运行一次 Django 后台任务