SetInterval一直在调用相同的函数

SetInterval keeps calling same function

本文关键字:函数 调用 一直 SetInterval      更新时间:2023-09-26

我有这个函数:

original = 0;
original = original+1;
setInterval("dis"+original+"();", 2400);

但有一个问题,每次调用它时,它似乎都在再次调用同一个函数。。。它们不调用单独的函数。

谢谢你的帮助。

每次都需要重新生成函数名,因为setInterval不会帮你处理这个问题——它总是运行设置时传递给它的代码。

这将在全局范围(window)中找到正确的函数,并将其称为:

original = 0;
original = original+1;
setInterval(function(){
    window["dis" + original]();
    original++;
}, 2400);

计数器的递增也需要在setInterval处理程序中完成。

这是因为original用于构造回调函数名一次,并且仅用于构造一次,以调用setInterval。顾名思义,setInterval设置一次回调并继续执行,直到用clearInterval清除间隔。

如果您想更改要调用的方法,可以尝试setTimeout,即:

var original = 0,
    cb = function() {
        ('dis' + original).prototype.call(null);
        original++;
        setTimeout(cb, 2400);
    }
cb();