首页 > 解决方案 > setInterval 内的关闭计数器

问题描述

我有一个功能:

setInterval(function () {
        var counter = 0;
        (function() {
          counter = counter + 1;
          console.log(counter);
          })(counter)
       }, 1000)

为什么它不增加计数器?(相反,它记录 1)。如何让它记录升序数字?(1, 2, 3, ....)

标签: javascriptclosuressetinterval

解决方案


您可以使用一个函数,该函数返回一个函数作为计数器上的闭包。

setInterval(function(counter) {
    return function() {
        console.log(++counter);
    };
}(0), 1000);


推荐阅读