ES6 child class 继承属性

ES6 child class inheritance property

我有一个 parent A 和另外两个扩展 A 的 classes B 和 C。我正在尝试更改 parent 中的配置 属性 class 来自 child 的 A,例如 B,并自动与其他 child 共享,例如 C?

class A {
   constructor() {
       this.config = {};
   }
}

class B extends A {
    constructor() {
        super();
    }
   updateConfig() {
       this.config = "B";
   }
}

class C extends A {
    constructor() {
        super();
    }
    getConfig() {
        console.log(this.config);
    }
}

const b = new B();
const c = new C();
b.updateConfig();
c.getConfig(); // got {} expected "B"

bc是完全不同的对象。虽然它们都派生自 A(这意味着它们继承行为,而不是数据),但它们是独立的实例,因此具有独立的实例数据。因此,他们每个人都有自己的对象部分,即 A。当您更改 bA 部分时,它不会影响 cA 部分。

如果您想要一个由所有实例共享的单一值,也许您想要使用您的 类 之一的静态 属性 或者您可能想要每个 bc 在它们的实例数据中引用同一个对象,这样当一个对象更改该对象时,另一个将看到相同的更改(因为它们都引用同一个对象)。