【发布时间】:2011-09-11 22:12:24
【问题描述】:
如果我有这样的功能
function do(callback) {
//do stuff
callback();
}
然后我传入一个匿名函数:
do(function() { //do something else });
在页面的生命周期内是否会收集该匿名函数?如果没有,我怎样才能使它可用于 GC?
我必须这样做吗?
var h = function() { //do something };
do(h);
delete h;
我什至需要担心这个吗?我正在构建一个使用寿命长的网络应用程序,进行大量 ajax 调用将对象保留一段时间,并且实际上不需要刷新页面来导航。所以我想弄清楚我是否会陷入内存泄漏怪物。
【问题讨论】:
-
对我来说,我倾向于从不删除事件侦听器到我认为我已经删除的对象中获得最多的内存泄漏。这里还有其他与 JS 相关的内存泄漏帖子 stackoverflow.com/questions/5028479/… 你可能还想看这里 stackoverflow.com/questions/864516/…