如何在扩展 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
不会影响 A
或 B
的其他实例,如果您想调用 _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
在 B
的 constructor
中调用它。
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());
大家好,我是 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
不会影响 A
或 B
的其他实例,如果您想调用 _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
在 B
的 constructor
中调用它。
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());