JavaScript:从父类继承构造函数属性

时间:2020-06-26 09:02:44

标签: javascript oop inheritance

假设我有一个基类,并且我想从构造函数中继承属性。


注意:这是示例代码。它不是为了工作或任何目的,只是为了演示我的问题

基本类

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 的调试器时,此值是不确定的。

2 个答案:

答案 0 :(得分:3)

您需要将a和b值传递给super方法

喜欢这里:

class Myclass extends BaseClass {
    constructor(a, b) {
        super(a, b);
};

super

答案 1 :(得分:2)

constructor() {
    super();
};

您的子类将重写构造函数,不接受任何参数,并且不将任何参数传递给父构造函数(super()),因此父构造函数中的所有参数均为undefined。您的子构造函数需要接受相同或更多的参数,和/或向super()提供默认参数。

在这种特殊情况下,子构造函数不执行任何操作,因此也可以完全省略。