我有一个对象
item = { selectedItems: [] };
我做到了:
item1 = { ...item };
item2 = Object.assign({}, item);
item3 = Object.create(item);
但是当我将 selectedItems
更改为 item1
时,它们会更改所有项目。这是角度项目
怎么了?或者什么是正确的方法?
还是浏览器缓存?看不懂
答案 0 :(得分:1)
你需要一个深拷贝,例如:
let newItem = Json.parse(JSON.stringify(item));
答案 1 :(得分:0)
恕我直言,你的问题是其他的。您用来克隆对象的方式是返回对象而不引用原始对象的方式。更多信息可以看下一篇文章:https://dmitripavlutin.com/javascript-shallow-clone-objects/#:~:text=1.-,Cloning%20using%20object%20spread,the%20shallow%20copy%20of%20object%20。
PD:也许您的应用中有一个逻辑,当您更改所选项目时,会更新其他变量。