编程语言
首页 > 编程语言> > 扩展运算法是不完全深拷贝

扩展运算法是不完全深拷贝

作者:互联网

扩展运算法是不完全深拷贝

结论

扩展运算法是不完全深拷贝,在第一层是深拷贝,第二层是浅拷贝

例子

let a = {
  'name': {
    'info': 'hello',
    'nums': [1, 2]
  },
  'arr': [1, 2],
  'age': 12,
  'map': {
    'score': 1
  }
}
let b = {
  ...a
}

b.age = 0  // 不一致
b.nums = [3]  // 不一致
b.map = {}  // 不一致
b.name.info = 'changed'  // 一致
console.log('b', b)
console.log('a', a)

// 运行结果
// b {
//   name: { info: 'changed', nums: [ 1, 2 ] },
//   arr: [ 1, 2 ],
//   age: 0,
//   map: {},
//   nums: [ 3 ]
// }
// a {
//   name: { info: 'changed', nums: [ 1, 2 ] },
//   arr: [ 1, 2 ],
//   age: 12,
//   map: { score: 1 }
// }

从代码可以看出,修改 age,nums,map 都不会对 a 产生改变,但是修改 b.name.info 会对 a 发生变化

标签:info,map,运算法,name,nums,age,扩展,拷贝
来源: https://blog.csdn.net/volunteer1024/article/details/114791952