js深拷贝与浅拷贝
什么是深拷贝:
var num1 = 100;
var num2 = num1;
num2=1000;
console.log(num1); //100
console.log(num2); //1000
虽然前面num2=num1,但后面给num2重新赋值,并没有改变num1的值,这就是深拷贝.
什么是浅拷贝:
var arr1 = [1,2];
var arr2 = arr1;
arr2.push(3)
console.log(arr1); //[1,2,3]
console.log(arr2); //[1,2,3]
这里arr1的值会跟随arr2的值改变而改变,这就是浅拷贝
浅拷贝解决方法:
方法一:
var arr1 = [1,2];
//concat()方法会创建一个拷贝当前数组的副本然后把参数添加到副本末尾
var arr2 = [].concat(arr1)
arr2.push(3)
console.log(arr1); //[1,2]
console.log(arr2); //
js深拷贝与浅拷贝最先出现在Python成神之路。
共有 0 条评论