2014-09-03 85 views

回答

4

jQuery.extend沒有深入克隆。它只是將源對象的屬性複製到目標對象中。如果屬性是對象引用,它們也會被複制。這被稱爲淺拷貝。

如果您檢查每個對象,它可能看起來像一個深層複製,但屬性是對相同基礎對象的引用。

jQuery.extenddeep選項會導致合併,而不是複製,這意味着對象不會被覆蓋,而是將其屬性複製到其上。

有關詳細信息,請參閱文檔jQuery.extend

http://api.jquery.com/jquery.extend/

+0

謝謝布蘭登。從原始數組中刪除條目時,引用會發生什麼?似乎仍然可以通過克隆訪問數據。垃圾收集器刪除數據還是會繼續存在?是時間問題了嗎? – bengro 2014-09-04 17:21:18

+1

垃圾收集器可能會延遲刪除數據,但只有在引用消失時才能將其刪除,此時數據不可見。複製對象引用並將其從其他位置刪除不會刪除該對象。您現在可以再次查看同一個對象。 – Brandon 2014-09-04 18:15:36