【问题标题】:How to make property of child class available in constructor of parent? [duplicate]如何使子类的属性在父类的构造函数中可用? [复制]
【发布时间】:2021-12-30 20:43:51
【问题描述】:

我对继承对类属性的工作方式有点困惑。这是一个有代表性的例子:

class Base {
    something = 1;
    constructor() { 
        console.log(this.something);
    }
}

class Child extends Base {
    something = 2;
}

new Child();

这会将1 记录到终端,我希望它会记录2

这只是一个最小的工作示例。我的实际代码比较复杂,但基本上我的要求是:

  1. Child 应该有一个属性,
  2. 应该可以在Base.constructor 中访问该属性。

【问题讨论】:

  • @Trincot 好的。

标签: javascript


【解决方案1】:

我认为我们不能直接从父类访问子属性。您可以在创建对象后传递值,但这不是一种优雅的方式。

class Base {
    something = null;
    constructor(something) {
        this.something = something;
        alert(this.something);
    }
}

class Child extends Base{
    something = 2;
}

let childObj = new Child();
let baseObj = new Base(childObj.something);

创建子对象时总是会调用父构造函数,所以我建议你在单独的方法中使用 this.something 而不是构造函数。

【讨论】:

    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多