Javascript ES6子类继承属性

Javascript ES6子类继承属性,javascript,inheritance,prototype,es6-class,Javascript,Inheritance,Prototype,Es6 Class,我有一个父类a和另外两个扩展了a的类B和C。我正在尝试更改父类a中的config属性,该属性来自子类,例如B,并自动与其他子类共享,例如C class A { constructor() { this.config = {}; } } class B extends A { constructor() { super(); } updateConfig() { this.config = "B"; } } c

我有一个父类a和另外两个扩展了a的类B和C。我正在尝试更改父类a中的config属性,该属性来自子类,例如B,并自动与其他子类共享,例如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"

b
c
是完全不同的对象。虽然它们都源于
A
(这意味着它们继承的是行为,而不是数据),但它们是单独的实例,因此具有单独的实例数据。因此,它们都有自己的对象部分,即
A
。更改
b
A
部分时,不会影响
c
A
部分


如果希望所有实例共享一个值,可能希望使用某个类的静态属性,或者希望
b
c
中的每一个都在其实例数据中引用同一对象,这样当一个对象更改时,另一个对象将看到相同的更改(因为它们都是指同一个对象)。

b
c
可能都是
A
(通过继承),它们仍然是不同的对象(即,它们在实际数据方面不共享任何内容)。这些类相互继承并不意味着任何特定实例之间的关系。