日期:2014-05-16  浏览次数:20276 次

求助js中闭包内存占用问题
如下代码: 执行到红色的部分时,bigString这个字符串占用的内存是否会释放掉。

function f1() {

var n = 999;
var bigString = "xxxxxx..."// 10万个长度的字符
function f2() {
alert(n++);
}

return f2;

}

var result = f1();

result();//此处执行完毕后。

------解决方案--------------------
result 还在,应该不会释放
------解决方案--------------------
http://www.cnblogs.com/likehua/archive/2011/03/04/1970775.html
------解决方案--------------------
虽然bigString变量未被使用,但其属于f1函数所在的执行环境,而该环境始终被result引用,所以应该不会被回收。
------解决方案--------------------
在的。
------解决方案--------------------
存在.
AO = active object

result里包含(但不是全部)这些东西.
result:{
f2()'s AO:{},
f1()'s AO:{
n : 999,
bigString : "xxxxxx..."// 10万个长度的字符
}
global content:{}// 全局变量

}