【发布时间】:2015-04-16 23:21:36
【问题描述】:
我有一个基类和一个派生类,每个都有初始化函数。
当我构造派生的时,我想要它:
-
调用它的基础构造函数:
1.1。调用它的初始化函数
调用它自己的(派生的)初始化函数。
问题是派生的init函数被调用了两次。
代码:
class Base{
constructor() {
this.init();
}
init(){
console.log("Base init");
}
}
class Derived extends Base{
constructor() {
super();
this.init();
}
init(){
console.log("Derived init");
}
}
var obj = new Derived ();
输出:
Derived init
Derived init
【问题讨论】:
-
init 被覆盖了,这就是它的全部意义......在派生中,你可以做一些像 base.init() 或 super.init() 这样的事情。我不知道 typescript 关键字 - 无论如何你必须明确调用 Base 方法。然而,虽然从理论上讲这将是一个糟糕的设计恕我直言
标签: oop inheritance typescript