在javascript中关闭setInterval函数

如何在不使用全局变量的情况下使用setInterval?我更喜欢将setInerval调用的函数的所有变量包装在某种闭包中,如下所示:

var wrap = function (f){
 var local1, local2, ...;
 return function () { return f(); }
}

这不起作用,但我的想法是我将wrap(f)而不是f传递给setInterval,因此f的locals很好地包装并且不会污染全局范围.

解决方法:

javascript没有动态绑定.(此关键字除外)

使用匿名函数可以存档您的想法. (它叫封闭)

var fnc = function(){
    var local1, local2;

    return function(){
         // using local1, local2
    }
};

setInterval(fnc, 1000);
上一篇:javascript:删除元素后停止setInterval


下一篇:Javascript setInterval – 率还是延迟?