理解“浅拷贝”和“深拷贝”
浅拷贝:将原对象(原数组)的“引用”直接赋给新对象(新数组),新对象(新数组) 是原对象(原数组)的一个引用。如果改变这个新对象(新数组),原对象(原数组)就会改变。
深拷贝:将原对象的各项属性的“值”(数组的所有元素)都拷贝给新对象(新数组),是拷贝的“值”,而不是“引用”。
为什么要使用深拷贝?
希望改变新对象(新数组)的时候,不改变原对象(原数组)。
对于数组如何使用深拷贝:
1.直接遍历法
var arr = [1, 2, 3, 4]; function copy(arr) { var newArr = []; for (let item of arr ) { newArr.push(item); } return newArr; } var copyArr = copy(arr); copyArr[0] = 50; console.log(arr); // [1, 2, 3, 4] console.log(copyArr); // [50, 2, 3, 4]