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