Object.assign 和 b = {...a} 是深拷贝还是浅拷贝?

  • 第一级是深拷贝,以后各级是浅拷贝
  • B复制A —— A变B变,浅拷贝 ;A变B不变,深拷贝
第一级是深拷贝:
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 } } 
复制代码

转载于:https://juejin.im/post/5d085f62f265da1b5f265767

猜你喜欢

转载自blog.csdn.net/weixin_33878457/article/details/93175262