如何在扩展类 javascript 中获取更新的对象数组
Posted
技术标签:
【中文标题】如何在扩展类 javascript 中获取更新的对象数组【英文标题】:How to get updated object array in extended class javascript 【发布时间】:2021-07-11 07:01:39 【问题描述】:大家好,我是 ES6 类的新手,目前想用更新的数据继承启动的对象(this._obj),但在 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();
请任何人都可以帮助如何实现这一目标...
【问题讨论】:
【参考方案1】:在A
的实例上调用_renderData
不会影响A
或B
的其他实例,如果您想为B
的每个实例调用_renderData
,请进行调用构造函数本身,否则在 B
的各个实例上调用它。
在下面的代码 sn-p 中,我创建了另一个 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());
【讨论】:
@GoudaPatil 请检查这是否解决了您的问题,如果您有任何问题,请告诉我。 我可以按相反的顺序做同样的事情吗,我的意思是我将删除 B 类中的数组数据并再次更新它,它可以为 A 类更新吗?以上是关于如何在扩展类 javascript 中获取更新的对象数组的主要内容,如果未能解决你的问题,请参考以下文章
已更新如何在 JavaScript 中获取 UTC 时间戳?
如何在滚动视图中显示从 Web 获取的 NSArray 数据并在 Objective C 中扩展+更新它?
使用扩展脚本(javascript)如何从 Photoshop 颜色表中获取颜色值