深拷貝:複製出的新變數的改變不會影響原變數。
淺拷貝:複製出的新變數的改變會影響原變數。
js中實現深拷貝的幾種方法和優缺點:
1手動實現(只使用於一層物件,實際是淺拷貝?)
function
deepclone(obj,copy);
for(var
keyin
obj));
for(variin
obj);
var index = arr2.indexof(obj);
if(index != -1) =obj;
return ;
5.es6 object.assign()方法
function
deepclone(obj);
obj2=object.assign(obj2,obj);
return
obj2;
但是這個方法只適用於只有一層物件
JavaScript深拷貝 淺拷貝
淺拷貝 淺拷貝只是複製了記憶體位址,如果原位址中的物件改變了,淺拷貝出來的物件也會相應改變。深拷貝 開闢了一塊新的記憶體存放位址和位址指向的物件,原位址的任何物件改變了,深拷貝出來的物件不變。淺拷貝陣列 只拷貝第一級陣列 1.直接遍歷var arr 1,2,3,4 function copy arg...
javaScript淺拷貝 深拷貝
資料型別 js的資料型別有兩種 1.基本資料型別 數值 字串 布林 null undefined 值型別 存放在棧中,所以複製基本資料型別的值是會新開乙個棧記憶體 淺拷貝 如果我們要複製物件的所有屬性都不是引用型別時,就可以使用淺拷貝,實現方式就是遍歷並複製,最後返回新的物件。深拷貝 深度拷貝就是把...
javaScript淺拷貝 深拷貝
資料型別 js的資料型別有兩種 1.基本資料型別 數值 字串 布林 null undefined 值型別 存放在棧中,所以複製基本資料型別的值是會新開乙個棧記憶體 淺拷貝 如果我們要複製物件的所有屬性都不是引用型別時,就可以使用淺拷貝,實現方式就是遍歷並複製,最後返回新的物件。深拷貝 深度拷貝就是把...