扩展运算法是不完全深拷贝
作者:互联网
扩展运算法是不完全深拷贝
结论
扩展运算法是不完全深拷贝,在第一层是深拷贝,第二层是浅拷贝
例子
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