【问题标题】:JavaScript : Inherit constructor properties from Parent ClassJavaScript:从父类继承构造函数属性
【发布时间】:2020-06-26 09:02:44
【问题描述】:

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


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

基类

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

【问题讨论】:

    标签: javascript oop inheritance


    【解决方案1】:

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

    喜欢这里:

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

    super

    【讨论】:

      【解决方案2】:
      constructor() {
          super();
      };
      

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

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

      【讨论】:

        猜你喜欢
        • 2011-12-26
        • 1970-01-01
        • 2015-05-25
        • 1970-01-01
        • 2013-09-17
        • 1970-01-01
        • 2017-02-25
        相关资源
        最近更新 更多