JS深淺拷貝的多種實現方式

2021-10-08 19:33:13 字數 612 閱讀 1883

通過for迴圈遍歷

let obj2=

;for

(let key in obj)

}

通過(…)擴充套件運算子

let obj2=

概念:開闢一塊新的記憶體空間,複製要拷貝的資料至新建立的記憶體空間,兩個資料結構的增刪改查互不干擾。

使用json的函式(不適用於物件中含有函式、正則、日期)

let obj2=

json

.parse

(json

.stringify

(obj)

);

使用deepclone函式進行特殊情況的過濾和拷貝

function

deepclone

(obj)

if(obj instanceof

date

)let newobj=

;for

(let key in obj)

}return newobj;

}

js實現深淺拷貝

一 實現淺拷貝的方法 1 直接用 賦值 let a 0 1,2 3,4 b a console.log a b a 0 1 console.log a,b 兩個相同的 1,1,2,3,4 2 for in只迴圈第一層 只複製第一層的淺拷貝 function copy obj1 for let i i...

JS 深淺拷貝的區別以及實現方式

在學習js時最讓我頭疼的就是棧和堆以及一切概念性的問題 也是最近才把想給這個搞通提上了日程 簡單來說 深淺拷貝的區別 a複製了b 當改變 a 中的乙個元素 b 中的這個元素也改變了 這就叫做淺拷貝 反之 改變 a 中的元素 b 中的元素並沒有一起改變 這就叫做 深拷貝 深拷貝都是針對於較為複雜的ob...

js物件實現深淺拷貝!!

物件淺拷貝 function objshallowcopy obj for var i in obj return obj2 物件深拷貝 function objdeepcopy obj1,obj2 最初的時候給他乙個初始值 它自己或者乙個json for var name in obj1 將要複製...