當前位置:成語大全網 - 書法字典 - JavaScript如何有效地復制對象?

JavaScript如何有效地復制對象?

對象的有效副本應該引用深層副本。

淺拷貝:即兩個js對象指向同壹個內存地址,所以當obj1和obj2指向obj3時,壹旦其中壹個發生變化,其他對象也會發生變化!

深度復制:就是把壹段記憶再復制壹次,這樣就不會互相影響了。

有時我們定義壹個數組並將該數據分配給多對象數組中的壹個字段。當我們改變對象數組中的這個字段時,我們也將改變原始數組,這將導致其他數組對象中的相應字段發生變化,這不是我們想要的。

這次我們將使用深層拷貝。

深層復制方法:

var?deepCopy?=?功能(源)

{

var?結果;

(來源?instanceof?數組)?(結果?=?[])?:?(結果?=?{});

為了什麽?(var?鑰匙?在?來源)?{

結果【關鍵】?=?(類型?source【key】= = =‘object‘)?deepCopy(source【key】)?:?source【key】;

}

回歸?結果;

}