使用遍歷的方法實現對物件的深拷貝

2022-09-15 17:18:10 字數 680 閱讀 9289

本文**:

測試**:

function

gettype(o)

function

extend(destination,source);

arguments.callee(destination[p],source[p]);

}else

}}var test=,,]

}]};var test1={};

extend(test1,test);

console.log(test);

console.log(test1);

test1.c[1].n[0].kk="change"; //

改變test1的c屬性物件的d屬性

console.log(test);

console.log(test1);

console.log(test.c[1].n[0]);

console.log(test1.c[1].n[0]);

測試結果:

從測試結果可以看到,通過使用這個遍歷的方法,成功將物件test深拷貝複製乙份,得到test1。並且更改test1物件的屬性,並不會對test物件產生影響。

javascript實現陣列或物件的深拷貝

第一 簡單粗暴 let arr 1,let copyarr json.parse json.stringify arr console.log copyarr 1,arr 1 a 3 console.log copyarr 1,copyarr 1 a 5 console.log arr 1,可以看出...

使用slice和concat對陣列的深拷貝和淺拷貝

本文 一 陣列淺拷貝 在使用j ascript對陣列進行操作的時候,我們經常需要將陣列進行備份.如下 如果只是簡單才用賦值的方法,那麼我們只要更改其中的任何乙個,然後其他的也會跟著改變,這就導致了問題的發生 var arr1 red yellow black var arr2 arr1 arr2 1...

使用fastjson實現物件的深複製

最近遇到乙個坑,之前的 將乙個訂單物件中的明細,乙個list,進行了分組。然後這個list就改變了。再往後,他們認為這個list沒變,又將這個list作為最終資料進行了傳送。這就導致這個明細回傳錯誤。查出問題後,我就想,將這個物件如果賦值乙份的吧。應該就沒問題了。這裡,一定要實現深複製,不然只進行淺...