在 Typescript 方法中赋值而不是引用 return

Assign value not reference in Typescript method return

我在 Ionic3 工作。

我有一个函数可以从 provider.ts 调用另一个函数,它 returns 是一个接口对象。

page.ts

getList(){
  this.localdata = this.provider.getGlobalData();
}

provider.ts

getGlobalData(){
  return this.gvData;
}

现在,对 localdata 所做的任何更改也会在 provider.ts 中更改 gvData。 我不想复制参考,只是复制价值。我该怎么做?

以下代码段将 return 对象的克隆版本。

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);
}

您只需执行类似 Object.assing({},this.provider.getGlobalData()) 的操作即可获取对象的新副本。

另一个想法是使用扩展运算符:

getGlobalData() {
  return { ... this.gvData};
}