Object.assign()是深拷贝还是浅拷贝

当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

第一级是深拷贝:
let a = {James: {age: 18}}
let b = Object.assign({}, a)
b.James = 20
console.log(b) // { James: 20 } 
console.log(a) // { James: { age: 18 } } 
以后各级是浅拷贝:
let a = {James: {age: 18}}
let b = Object.assign({}, a)
b.James.age = 20
console.log(b) // { James: { age: 20 } } 
console.log(a) // { James: { age: 20 } } 

 

posted @ 2021-01-27 15:59  汪洋是大大的海  阅读(245)  评论(0编辑  收藏  举报