var f = (function(){
var f, g;
if (true) {
f = function g(){};
}
else {
f = function g(){};
}
// 设置g为null以后它就不会再占内存了
g = null;
return f;
})();
如果 g
不设成 null
,那么 f
引用的那个立即函数执行完过后,g
不会被释放吗
命名函数表达式探秘-JScript的内存管理
还有一点很重要,注意上下文,这个代码的内存泄漏,说的是 JScript,而不是 javascript。你应该把这篇文章继续看看,不要断章取义,看看JScript的bug章节,就明白了。
结论: