浅拷贝
浅拷贝就是将堆中的地址复制,如下:
var a = [1,2,3];
var b = a;
console.log(a,b)
这里边就是把堆中a 的地址复制给 b ,打印出来的a 和 b 都是[1,2,3]. 但是要注意如果修改数组的话,打印出来的b也会跟着改变,因为是浅拷贝,只是复制了地址,表示的是同一个数组。
深拷贝
深拷贝就是将堆中的数组在堆中原模原样的复制一个数组,如下:
var arr =[1,2,3];
var arr1 =[];
if(Array.isArray(arr)){
var res =[];
for(var i=0;i<arr.length;i++){
res[i]=arr[i];
}
arr1 = res;
}
这里就是深拷贝,简单的来说就是复制一个一摸一样的数组,数组虽然一样,但是在堆中却是两个地址,修改其中一个,都互相不影响。