看板 Ajax 關於我們 聯絡資訊
記憶體部份的觀念不夠 所以想問一下下面的例子 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
Kelunyang:JavaScript的 GC沒有人知道什麼時候會啟動... 11/22 00:15
Kelunyang:他不是C,你不能自己管理記憶體 11/22 00:15
Kelunyang:你可以把它設成null或是delete,但不代表瀏覽器 11/22 00:16
Kelunyang:會啟動GC 11/22 00:16
Kelunyang:然後這又涉及到closure的問題了XD 11/22 00:17
mron:理論上應該消失。而且 JavsScript 沒有指標。 11/22 18:19