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 建立乙個新物件,並且遞迴的...