js对象的深浅拷贝

时间:2021-01-20 19:47:08

有一个对象a,新建一个对象b,需要把对象a的值给对象b,且改变对象b中的一个值,但又不影响到对象a。
实现如下:
方法一(其实就是把对象的属性遍历一遍,赋给新的对象。):

let aa={
'aa':1,
'bb':2,
'cc':3
}

let bb = new Object();
bb.aa = 123123123;
bb.bb = aa.bb;
bb.cc = aa.cc;
console.log(aa); //{aa: 1, bb: 2, cc: 3}
console.log(bb); //{aa: 123123123, bb: 2, cc: 3}

方法二:

let aa={
'aa':1,
'bb':2,
'cc':3
}

let bb = new Object();
let changeStr = JSON.stringify(aa);
bb = JSON.parse(changeStr);
bb.aa = 123123
console.log(aa); //{aa: 1, bb: 2, cc: 3}
console.log(bb); //{aa: 123123, bb: 2, cc: 3}