我想知道清空關聯數組,而不會造成任何內存泄漏(該值是JS對象)的javascript:刪除關聯數組的所有對象元素
只是可以肯定,我的最有效的方法嘗試迭代數組的元素,爲每個元素對象調用'delete'操作,以便所有元素對象都成爲垃圾收集的候選對象。最後,我使用以下命令重置關聯數組: somearray = {};
是否需要爲每個元素調用「刪除」操作?或者重置變量值是否足夠,以便所有元素都將被垃圾收集?
謝謝!
我想知道清空關聯數組,而不會造成任何內存泄漏(該值是JS對象)的javascript:刪除關聯數組的所有對象元素
只是可以肯定,我的最有效的方法嘗試迭代數組的元素,爲每個元素對象調用'delete'操作,以便所有元素對象都成爲垃圾收集的候選對象。最後,我使用以下命令重置關聯數組: somearray = {};
是否需要爲每個元素調用「刪除」操作?或者重置變量值是否足夠,以便所有元素都將被垃圾收集?
謝謝!
嗨,謝謝你的回覆。不過,我想進一步澄清我的擔憂。 我有一個用於存儲GMarker對象的關聯數組。在將每個GMarker對象添加到數組後,它也會添加到地圖中(使用GMap2.addOverlay()方法) 當我想從地圖中刪除所有標記時,我只需要調用GMap2.clearOverlays()方法。但除此之外,我還必須清除關聯數組。 這是否意味着當我重置變量時,所有包含的對象最終都會被垃圾回收? 在此先感謝 – Erwin 2010-01-04 14:35:54
是的,他們會。一般來說,找出最佳方法是在循環中運行一百萬次邏輯,並在任務管理器中循環使用內存。 – SLaks 2010-01-04 14:42:40
我明白了。那麼我會嘗試一下。謝謝您的幫助! – Erwin 2010-01-04 14:58:07