如何在扩展 class javascript 中获取更新的对象数组

How to get updated object array in extended class javascript

大家好,我是 ES6 classes 的新手,目前想继承带有更新数据的初始化对象 (this._obj),但是在 class B 中我正在获取初始化的长度对象不是更新后的对象?

class A {
      constructor() {
        //intiating array of object with length 0
        this._obj = new Object();
        this._obj['abarray'] = [];
      }
      _renderData() {
        let datas = {
          id: 1,
          name: 'abc',
        };
        this._obj['abarray'].push(datas);
        console.log(this._obj);
        //output
        /*{abarray: Array(1)}
        abarray: Array(1)
        0: {id: 1, name: "abc"}
        length: 1
        __proto__: Array(0)
        __proto__: Object 
       */
      }
    }
    const a = new A();
    a._renderData();
    
    class B extends A {
      constructor() {
        super();
      }
      _showObjectData() {
        //here i want to get the updated object with length 1 as shown in output but i getting as intialized
        /*
        {abarray: Array(0)}
            abarray: Array(0)
            length: 0
            __proto__: Array(0)
            __proto__: Object
        */
        console.log(this._obj);
      }
    }
    const b = new B();
    b._showObjectData();

请任何人帮助如何实现这一目标...

A 的实例上调用 _renderData 不会影响 AB 的其他实例,如果您想调用 _renderData对于 B 的每个实例,在构造函数本身中进行调用,否则在 B.

的各个实例上调用它

在下面的代码片段中,我创建了 A 的另一个实例并将其存储在变量 a1 中,现在如果您记录 a1._obj 它将与a._obj.

class A {
  constructor() {
    this._obj = new Object();
    this._obj["abarray"] = [];
  }
  _renderData() {
    let datas = { id: 1, name: "abc" };
    this._obj["abarray"].push(datas);
  }
}

const a = new A();
a._renderData();
console.log("a", a._obj);

// Another instance of "A"
const a1 = new A();
console.log("a1", a1._obj); // a1._obj is not same as a._obj

Bconstructor 中调用它。

class A {
  constructor() {
    this._obj = new Object();
    this._obj["abarray"] = [];
  }
  _renderData() {
    let datas = { id: 1, name: "abc" };
    this._obj["abarray"].push(datas);
  }
}

const a = new A();
a._renderData();
console.log("a", a._obj);

class B extends A {
  constructor() {
    super();
    this._renderData();
  }
  _showObjectData() {
    return this._obj;
  }
}

const b = new B();
console.log("b", b._showObjectData());

B 的实例上调用它。

class A {
  constructor() {
    //intiating array of object with length 0
    this._obj = new Object();
    this._obj["abarray"] = [];
  }
  _renderData() {
    let datas = { id: 1, name: "abc" };
    this._obj["abarray"].push(datas);
  }
}

const a = new A();
a._renderData();
console.log("a", a._obj);

class B extends A {
  constructor() {
    super();
  }
  _showObjectData() {
    return this._obj;
  }
}

const b = new B();
b._renderData();
console.log("b", b._showObjectData());