Angular typescript如何在没有引用的情况下复制对象

Angular typescript如何在没有引用的情况下复制对象,angular,typescript,Angular,Typescript,我有一个目标 item = { selectedItems: [] }; 我做到了: item1 = { ...item }; item2 = Object.assign({}, item); item3 = Object.create(item); 但是当我为item1更改selectedItems时,所有项目都会更改。这是一个有角度的项目 发生了什么?或者什么是正确的方法? 还是浏览器缓存?我不明白您需要一份深度副本,例如: let newItem = Json.parse(JSON.s

我有一个目标

item = { selectedItems: [] };
我做到了:

item1 = { ...item };
item2 = Object.assign({}, item);
item3 = Object.create(item);
但是当我为
item1
更改
selectedItems
时,所有项目都会更改。这是一个有角度的项目 发生了什么?或者什么是正确的方法?
还是浏览器缓存?我不明白

您需要一份深度副本,例如:

let newItem = Json.parse(JSON.stringify(item));

我知道你的问题是另一个。克隆对象的方法是返回不引用原始对象的对象。有关更多信息,请参阅下一篇文章:

PD:也许你的应用程序中有一个逻辑,当你更改所选项目时,会更新其他变量