我在Ionic3工作。
我有一个从provider.ts
调用另一个函数的函数,它返回一个接口Object。
page.ts
getList(){
this.localdata = this.provider.getGlobalData();
}
provider.ts
getGlobalData(){
return this.gvData;
}
现在,对localdata
所做的任何更改也在gvData
中更改provider.ts
。
我不想复制参考,只是价值。我该怎么办?
答案 0 :(得分:1)
以下代码段将返回对象的克隆版本。
<强> provider.ts 强>
getGlobalData(){
return JSON.parse(JSON.stringify(this.gvData));
}
你也可以这样做:
<强> page.ts 强>
getList(){
this.localdata = JSON.parse(this.provider.getGlobalData());
}
<强> provider.ts 强>
getGlobalData(){
return JSON.stringify(this.gvData);
}
答案 1 :(得分:1)
你可以像Object.assing({},this.provider.getGlobalData())
这样做一些东西来获得对象的新副本。
答案 2 :(得分:0)
另一个想法是使用扩展运算符:
getGlobalData() {
return { ... this.gvData};
}