Javascript setInterval处理程序是否被视为内存泄漏?
javascript代码:Javascript setInterval处理程序是否被视为内存泄漏?,javascript,node.js,memory-leaks,Javascript,Node.js,Memory Leaks,javascript代码: function blah() { var blahInterval = setInterval(function(){ if( some_global_variable == 5 ) clearInterval(blahInterval); }, 1000); } 我有多个变体的代码,它将在NodeJS脚本中被调用无数次。我是否应该删除blahInterval在清除间隔之后 这是内存泄漏吗?或者,一旦set
function blah()
{
var blahInterval = setInterval(function(){
if( some_global_variable == 5 )
clearInterval(blahInterval);
}, 1000);
}
我有多个变体的代码,它将在NodeJS脚本中被调用无数次。我是否应该删除blahInterval代码>在清除间隔之后
这是内存泄漏吗?或者,一旦setInerval函数超出范围,GC将对其进行清理 GC应在其超出范围时对其进行清理。只要if条件可以为false,就可以清除间隔。我不认为它是内存泄漏。全局变量用一些外部事件来改变,所以这个SETIFEL HAND处理程序可以执行一次或几百次!因此,问题是“什么时候blahInterval
超出范围?”在blah()的每个函数调用中都会创建一个本地blahInterval
。因此,考虑到if语句是相同的,每个语句都将在同一时间超出范围。如果blahInterval
是一个全局变量,我们就会遇到问题,因为覆盖时会有无法清除的间隔。因为是本地的,所以我们没有这个问题。