繁体   English   中英

如何在扩展 class javascript 中获取更新的 object 阵列

[英]How to get updated object array in extended class javascript

大家好,我是 ES6 类的新手,目前想用更新的数据继承启动的对象(this._obj),但是在 class B 中,我正在获取启动的 object 的长度而不是更新的 object?

 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的其他实例,如果要为B的每个实例调用_renderData ,请在构造函数本身中进行调用,否则在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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM