深拷贝浅拷贝区别
- 修改拷贝的数据会影响原数据--浅拷贝
- 不会影响原数据--深拷贝
Object.assign()的用法
let obj={a:1};
let copyObj=Object.assign({},obj);
console.log(copyObj);
let obj={a:1};
let obj1={a:2,b:3};
let obj2=Object.assign(obj1,obj);
console.log(obj2);
为什么说Object.assign()是浅拷贝呢?
function test() {
let a = { b: {c:4} , d: { e: {f:1}} }
let g = Object.assign({},a)
let h = JSON.parse(JSON.stringify(a));
console.log(g.d)
g.d.e = 32
console.log('g.d.e set to 32.')
console.log(g)
console.log(a)
console.log(h)
h.d.e = 54
console.log('h.d.e set to 54.')
console.log(g)
console.log(a)
console.log(h)
}
test();