在typescript中要實現深拷貝可以這樣:
let a:object={
c:1,
b:[2],
e:function(){
}
}
//需將copya的類型指定為any,這樣才能夠使其能夠任意添加屬性
let copya:any={};
//最關鍵的是注意 下面 當a中有方法時,json.parse(json.stringify(xx))是無效的
for(let k in a){
if(typeof a[k]=='function'){
//如果是方法直接賦值就可以了
copy[k] = a[k]
}else{
copya[k] = JSON.parse(JSON.stringify(a[k]))
}
}
!!注意,比較重要的一點,這里的深打了引號,除了原對象非函數類型的屬性,都已經深拷貝成功,但是如果是函數的話,仍舊為淺拷貝,copya中的e方法和a中的e方法指向內存中的同一塊地址, 可是我們一般很少去修改方法,所以這樣的'深拷貝'能滿足大多數需求
