我是ReactJS的新手,我对Object.assign()
感到好奇:
const B = {
k1: 'b',
k2: 'bb',
treedata: [{
children: ['g']
}]
}
var A = Object.assign({}, B);
A.treedata[0].children = [1];
console.log(B)
如您所见,在Object.assign()
之后,更改对象A
也将更改对象B
。为什么会发生这种情况,如何避免这种情况?
答案 0 :(得分:2)
您需要分析和分类对象,然后使用object.assign
,
像这样var A = Object.assign({}, JSON.parse(JSON.stringify(B)));
,这样原始对象就不会改变
查看代码段
const B = {
k1 : 'b',
k2 : 'bb',
treedata : [{ title: 'title', key: -1, fieldName: '', from: -1, to: -1, children: ['g'] }]
}
var A = Object.assign({}, JSON.parse(JSON.stringify(B)));
A.treedata[0].children = [1];
alert(B.treedata[0].children);