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

2021-09-16 11:55:26 字數 881 閱讀 1135

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

1. 使用遞迴的方式實現深拷貝

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

function

deepclone1

(obj)

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

if(obj &&

typeof obj ===

"object"

)else}}

}return objclone;

}

2. 通過 json 物件實現深拷貝

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

function

deepclone2

(obj)

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

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

3. 通過jquery的extend方法實現深拷貝

var array =[1

,2,3

,4];

var newarray = $.

extend

(true,[

],array)

;

4. object.assign(), slice, concat拷貝

當物件中只有一級屬性,沒有二級屬性的時候,此方法為深拷貝,但是物件中有物件的時候,此方法,在二級屬性以後就是淺拷貝。

5. lodash函式庫實現深拷貝

lodash很熱門的函式庫,提供了 lodash.clonedeep()實現深拷貝

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

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

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...