关于 ES6 (...) 扩展运算符 深浅拷贝问题
浅拷贝 修改时原对象会受影响
深拷贝 修改时原对象不会受影响
深拷贝
let arr = [1, 2, 3];
let arr1 = [...arr];
arr1[0] = 9;
console.log(arr, arr1); \\[ 1, 2, 3 ] [ 9, 2, 3 ]
let obj1 = { YY: 1, ZZ: 2 };
let obj2 = { YY: 2 };
let obj3 = { ...obj1, ...obj2 };
obj3.ZZ = 999;
console.log(obj1, obj3); \\ { YY: 1, ZZ: 2 } { YY: 2, ZZ: 999 }
浅拷贝
const a1 = [{ foo: 1 }];
const a2 = [{ bar: 2 }];
const a3 = [...a1, ...a2];
a1[0].foo = 9;
console.log(a1, a3); \\ [ { foo: 9 } ] [ { foo: 9 }, { bar: 2 } ]