JS 中深拷貝的幾種實現方法

2021-09-23 10:37:35 字數 584 閱讀 5585

//使用遞迴的方式實現陣列、物件的深拷貝

function deepclone1(obj) ;

//進行深拷貝的不能為空,並且是物件或者是

if (obj && typeof obj === "object") else }}

} return objclone;

}

//通過js的內建物件json來進行陣列物件的深拷貝

function deepclone2(obj)

json物件實現深拷貝的一些問題 

* 無法實現對物件中方法的深拷貝

var array = [1,2,3,4];

var newarray = $.extend(true,,array);

當物件中只有一級屬性,沒有二級屬性的時候,此方法為深拷貝,但是物件中有物件的時候,此方法,在二級屬性以後就是淺拷貝。
lodash很熱門的函式庫,提供了 lodash.clonedeep()實現深拷貝

用法介紹:

JS 中深拷貝的幾種實現方法

js 中深拷貝的幾種實現方法 1.使用遞迴的方式實現深拷貝 使用遞迴的方式實現陣列 物件的深拷貝 function deepclone1 obj 進行深拷貝的不能為空,並且是物件或者是 if obj typeof obj object else return objclone 2.通過 json 物...

JS中實現深拷貝的幾種方法

一,物件深拷貝的幾種方法 1.使用遞迴的方式實現深拷貝 1 function deepclone obj 3 if obj typeof obj object else 10 11 12 return objclone 13 2.通過json物件實現深拷貝 function deepclone2 o...

陣列深拷貝 js深拷貝的幾種方法

1.使用遞迴 使用遞迴的方式實現陣列 物件的深拷貝function deepclone obj 進行深拷貝的不能為空,並且是物件 if obj typeof obj object else return objclone 2.通過json物件 通過js的內建物件json來進行陣列物件的深拷貝func...