深拷貝通用方法

2021-10-20 05:49:21 字數 1265 閱讀 5220

遞迴實現深拷貝:可拷貝物件,陣列,regexp物件,基本資料型別。

<

!doctype html>

"en"

>

"utf-8"

>

"x-ua-compatible" content=

"ie=edge"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

<

/head>

function

deepclone

(target)

// 判斷如果當前的值是null的話;直接賦值為null

}else

if(target ===

null

)else

if(target.constructor === regexp)

else

for(

let i in target)

}// 如果不是物件的話,就是基本資料型別,那麼直接賦值

}else

// 返回最終結果

return result

}let arr1 =[1

,2,3

,4,5

] arr2 =

deepclone

(arr1)

; arr2[0]

=999

; console.

log(

'arr1'

, arr1)

;//[1, 2, 3, 4, 5]

console.

log(

'arr2'

, arr2)

;//[999, 2, 3, 4, 5]

let obj1 =

obj2 =

deepclone

(obj1)

; obj2.name =

"cwm"

console.

log(

'obj1'

, obj1);//

console.

log(

'obj2'

, obj2);//

<

/script>

<

/body>

<

/html>

js 深拷貝方法

object 方法 object.assign target,source 將源拷貝到目標,切返回目標 es6 擴充套件運算子 陣列方法 slice concat,es6擴充套件運算子 複製 json序列化 let obj let str json.strify obj json.parse str...

深拷貝的方法

準備拷貝的資料 let obj girlfriends call date內建物件和正則視情況未測試json深拷貝 無法拷貝function 第一種 json let objclone json.parse json.stringify obj console.log objclone 列印結果 g...

深拷貝的方法

準備拷貝的資料 let obj girlfriends call date內建物件和正則未測試json 無法拷貝function 第一種 json let objclone json.parse json.stringify obj console.log objclone 列印結果 girlfri...