淺拷貝:即兩個js對象指向同壹個內存地址,所以當obj1和obj2指向obj3時,壹旦其中壹個發生變化,其他對象也會發生變化!
深度復制:就是把壹段記憶再復制壹次,這樣就不會互相影響了。
有時我們定義壹個數組並將該數據分配給多對象數組中的壹個字段。當我們改變對象數組中的這個字段時,我們也將改變原始數組,這將導致其他數組對象中的相應字段發生變化,這不是我們想要的。
這次我們將使用深層拷貝。
深層復制方法:
var?deepCopy?=?功能(源)
{
var?結果;
(來源?instanceof?數組)?(結果?=?[])?:?(結果?=?{});
為了什麽?(var?鑰匙?在?來源)?{
結果【關鍵】?=?(類型?source【key】= = =‘object‘)?deepCopy(source【key】)?:?source【key】;
}
回歸?結果;
}