Javascript 克隆/复制对象时,如何删除其只读属性?
我希望能够复制/克隆存储状态并在本地对其进行修改。如何复制对象并删除只读属性Javascript 克隆/复制对象时,如何删除其只读属性?,javascript,redux,Javascript,Redux,我希望能够复制/克隆存储状态并在本地对其进行修改。如何复制对象并删除只读属性 let a = store.getState(); console.log(a.property) // 'property' let b = copy(a) b.property = 'newProperty'; console.log(b.property) // 'newProperty' 一种方法是,您可以从存储中获取状态,然后将其扩展到新对象中 比如: const state=store.getState(
let a = store.getState();
console.log(a.property) // 'property'
let b = copy(a)
b.property = 'newProperty';
console.log(b.property) // 'newProperty'
一种方法是,您可以从存储中获取
状态
,然后将其扩展到新对象中
比如:
const state=store.getState()
const newState={…state}
现在,您可以修改状态
对象
但是,如果您有处于状态的多级对象,则使用JSON.stringify
,然后使用JSON.parse
对其进行解析
像这样
const state=store.getState();
const newState=JSON.parse(JSON.stringify(state));
它将创建一个全新的克隆,现在您可以修改状态
我建议在这里使用JSON.stringify
,因为您的状态中可以有多级对象。
而排列
仅进行卷影复制。使用
let b = JSON.parse(JSON.stringify(a))