猿问

如何在克隆/复制对象时删除对象的只读属性?

我希望能够复制/克隆存储状态并在本地修改它。如何复制对象并删除只读属性?


let a = store.getState();

console.log(a.property) // 'property'

let b = copy(a)

b.property = 'newProperty';

console.log(b.property) // 'newProperty'


MYYA
浏览 97回答 2
2回答

尚方宝剑之说

一种方法是,您可以从商店获取,然后将其分散到新对象中。state喜欢:const state = store.getState()const newState = {...state}现在,您可以修改对象。state但是,如果状态中有多个级别对象,则使用然后使用来解析它。JSON.stringifyJSON.parse喜欢这个。const state = store.getState();const newState = JSON.parse(JSON.stringify(state));它将创建一个全新的克隆,现在您可以修改状态。我建议在这里使用,因为您可以在您的状态下拥有多级对象。并且只做卷影复制。JSON.stringifyspread

不负相思意

复制使用let b = JSON.parse(JSON.stringify(a))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答