作者tt0311 (turtle)
看板Ajax
標題[問題] 變數使用記憶體的問題
時間Mon Nov 22 00:00:41 2010
記憶體部份的觀念不夠
所以想問一下下面的例子
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
1F:→ Kelunyang:JavaScript的 GC沒有人知道什麼時候會啟動... 11/22 00:15
2F:→ Kelunyang:他不是C,你不能自己管理記憶體 11/22 00:15
3F:→ Kelunyang:你可以把它設成null或是delete,但不代表瀏覽器 11/22 00:16
4F:→ Kelunyang:會啟動GC 11/22 00:16
5F:→ Kelunyang:然後這又涉及到closure的問題了XD 11/22 00:17
6F:→ mron:理論上應該消失。而且 JavsScript 沒有指標。 11/22 18:19