如何在不使用全局变量的情况下使用setInterval
?我更愿意将 setInerval 调用的函数的所有变量包装在某种闭包中,如下所示:
var wrap = function (f){
var local1, local2, ...;
return function () { return f(); }
}
这行不通,但我的想法是我将 wrap(f)
而不是 f
传递给 setInterval
,所以f
的局部变量被很好地包装并且不会污染全局范围。
最佳答案
javascript 没有动态绑定(bind)。(this 关键字除外)
使用匿名函数可以存档你的想法。 (它称为关闭)
var fnc = function(){
var local1, local2;
return function(){
// using local1, local2
}
};
setInterval(fnc, 1000);
关于javascript - javascript中setInterval函数的闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11800436/