假设我有一个基类,并且我想从构造函数中继承属性。
注意:这是示例代码。它不是为了工作或任何目的,只是为了演示我的问题
基本类
class BaseClass {
constructor(a, b) {
this.a = a;
this.b = b;
}
/* SOME CLASS METHODS */ }
我的班级
class Myclass extends BaseClass {
constructor() {
super();
};
/* SOME CLASS METHODS */ }
我的问题
让test = Myclass('dog','cat');
但是,这似乎不起作用。为什么Myclass-constructor不初始化BaseClass构造函数?当我查看 this.a 和 this.b 的调试器时,此值是不确定的。
答案 0 :(得分:3)
您需要将a和b值传递给super方法
喜欢这里:
class Myclass extends BaseClass {
constructor(a, b) {
super(a, b);
};
答案 1 :(得分:2)
constructor() {
super();
};
您的子类将重写构造函数,不接受任何参数,并且不将任何参数传递给父构造函数(super()
),因此父构造函数中的所有参数均为undefined
。您的子构造函数需要接受相同或更多的参数,和/或向super()
提供默认参数。
在这种特殊情况下,子构造函数不执行任何操作,因此也可以完全省略。