2012-10-16 51 views
1

如果我有一個包含id的DOM元素的地圖,我想取消引用地圖中的條目,所以相應的元件可以通過垃圾收集器被拾起,有哪些步驟,我應該去通過確保沒有內存泄漏?我應該在地圖上輸入delete還是= null?我需要對元素本身做些什麼?Javascript地圖提領

回答

2

(我的「映射」你的意思是「對象」。假設)

要永久刪除對象的屬性和值,使用delete。使用null將產生清除該值的效果,但保留該屬性。

雙方將允許垃圾回收的價值。

但是你要完成什麼,如果地圖上只引用一個ID字符串,就會有元素本身沒有任何影響。您需要刪除所有對元素的引用(在DOM和JavaScript中)以確保元素被垃圾收集。

+0

我想這是因爲我用的是映射ID來在其他地方獲得的元素,在這種情況下,將參考已作出。 –

+1

@JasonHu:JavaScript沒有指針,它的通過/分配始終是「按價值」,所以當你在使用地圖中的ID來獲得元素,使用ID字符串的副本,所以沒有引用保留。也就是說,JavaScript實現將字符串實現爲引用類型,這樣整個字符串就不需要被複制。但是除非你保留了一些對該字符串的永久引用,否則它將被收集。 –