javascript - javascript中setInterval函数的闭包

标签 javascript closures setinterval

如何在不使用全局变量的情况下使用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/

相关文章:

javascript - 在ubuntu上使用emscripten编译ngspice时出现链接错误

ios - swift:如何从两个单独的方法执行相同的闭包

ios - 循环函数中的异步调用。仅在异步完成时返回

php - 在闭包中使用数组元素

node.js - 在 Node.js 中设置计时器

javascript - 清除间隔按钮后 5 秒内再次设置间隔

Javascript es6 将 2 个静态类组合成一个对象

javascript - 跨浏览器 Javascript XML 解析

javascript - 嵌入式 JavaScript - 将 HTML 渲染到页面

javascript - 在 JavaScript 游戏中使用 setInterval 代替 requestAnimationFrame