html js 物件的深淺複製拷貝問題

2021-10-05 16:21:47 字數 695 閱讀 4824

1、js如果使用等於號直接賦值物件,那麼對該物件是淺複製,當乙個物件的值被修改,那麼另乙個物件的值也會被修改。

2、若要使用深複製,可以採用json.stringify/parse方法:

let arr1 =[1

,2,3

,4];

let arr2 =

json

.parse

(json

.stringify

(arr1));

arr2.

push(5

);console.

log(arr1)

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

console.

log(arr2)

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

const obj1 =

;const obj2 =

json

.parse

(json

.stringify

(obj1));

0bj2.a =

'aa'

;console.

log(

0bj1)

;// ;

console.

log(

0bj2)

;// ;

參考博文:

js拷貝物件之——深拷貝、淺拷貝

oc 深淺複製

淺 復 制 在複製操作時,對於被複製的物件的每一層複製都是指標複製。深 復 制 在複製操作時,對於被複製的物件至少有一層複製是物件複製。完全複製 在複製操作時,對於被複製的物件的每一層複製都是物件複製。注 1 在複製操作時,對於物件有n層是物件複製,我們可稱作n級深複製,此處n應大於等於1。2 對於...

深淺複製 2

前面講了深淺複製的概念,而實操中我們會遇到更多的情況 我們可以看到這兩個copywithzone方法在arc下已經是放棄了,這兩個方法的使用非常簡單,一般的格式如下 1.實現nscopying協議 2.實現copywithzone方法 3.呼叫 我們看看結果 結果非常明顯了,這類似於上篇所講的情況,...

Python 深淺複製

python中的賦值語句不複製物件,它們在目標和物件之間建立繫結。對於可變的或包含可變項的容器,有時需要乙個副本,所以可以改變乙個副本而不改變另乙個。將建立乙個新物件,但它包含的是對原始物件包含的項的引用。a b list a c a.copy d copy.copy a 建立乙個新物件,並且遞迴的...