繁体   English   中英

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

[英]JavaScript : Inherit constructor properties from Parent Class

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


注意:这是一个示例代码。 它不是为了工作或任何东西,只是为了证明我的问题

底座 Class

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.athis.b的调试器时,这个值是未定义的。

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

像这儿:

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

极好的

constructor() {
    super();
};

您的孩子 class 正在覆盖构造函数,不接受任何 arguments,并且没有将 arguments 传递给父构造函数( super() ),因此父构造函数中的所有参数都是undefined的。 您的子构造函数需要接受相同或更多参数,和/或将默认 arguments 提供给super()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM