【发布时间】:2015-06-11 02:19:27
【问题描述】:
我试图了解在 JavaScript 中使用闭包时如何防止内存泄漏。有人可以告诉我我所做的是否正确吗?
我有一个虚拟函数:
var testFunction = function(obj1){
//other code..
on(control, "click", function(){
obj1.label= "test";
});
};
1) 上面是否会因为点击事件中引用了obj1而导致内存泄漏?
2) 我可以通过以下方式修复它吗:
var testFunction = function(obj1){
//other code.....
on(control, "click", function(){
var newObj1 = obj1;
newObj1.label= "test";
newObj1 = null;
});
};
如果这是一个糟糕的例子,有人可以向我展示一个更好的内存泄漏闭包示例以及如何修复它吗?
提前致谢!
【问题讨论】:
-
这两个功能都不起作用。 (好吧,函数会起作用,但事件处理程序会失败。)
-
谢谢,我把设置 obj1 = null 的那行去掉了。
标签: javascript memory-leaks closures