作者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