[問題] 變數使用記憶體的問題

看板Ajax作者 (turtle)時間13年前 (2010/11/22 00:00), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
記憶體部份的觀念不夠 所以想問一下下面的例子 var a = [1,2,3,4,5,6]; var b = [7,8,9]; a = b; 原本a陣列所使用的記憶體就會被釋放了嗎 還是我應該要先delete a陣列之後 再讓a=b呢? 另外我看到有程式是這樣寫的 var a = { init:function(){ var self = this; GEvent.bind(self.map, "moveed", self, function(){ alert(self.b); } }, .... } self在這邊是指標嗎? 當init跑完時self這個變數不會消失嗎? 不然事件發生時,alert(self.b)為什麼可以正常執行 希望能幫我解惑 或是哪邊可以看相關資料 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.212.231

11/22 00:15, , 1F
JavaScript的 GC沒有人知道什麼時候會啟動...
11/22 00:15, 1F

11/22 00:15, , 2F
他不是C,你不能自己管理記憶體
11/22 00:15, 2F

11/22 00:16, , 3F
你可以把它設成null或是delete,但不代表瀏覽器
11/22 00:16, 3F

11/22 00:16, , 4F
會啟動GC
11/22 00:16, 4F

11/22 00:17, , 5F
然後這又涉及到closure的問題了XD
11/22 00:17, 5F

11/22 18:19, , 6F
理論上應該消失。而且 JavsScript 沒有指標。
11/22 18:19, 6F
文章代碼(AID): #1CwK8ikw (Ajax)