Javascript 使用其他参数调用函数的setInterval

Javascript 使用其他参数调用函数的setInterval,javascript,setinterval,Javascript,Setinterval,我有一个名为“showCustomer”的函数,它获取1-5之间的数字并返回一些东西 我想使用setInterval,每5秒运行一次此函数,但使用另一个数字 它不起作用,我不明白为什么它对我不起作用。这是代码 setInterval(function () { var i = 1; showCustomer(i); i++; }, 5000); 只需将变量i的声明移动到setInterval()调用之前即可: var i = 1; setInterval(functi

我有一个名为“showCustomer”的函数,它获取1-5之间的数字并返回一些东西

我想使用setInterval,每5秒运行一次此函数,但使用另一个数字

它不起作用,我不明白为什么它对我不起作用。这是代码

setInterval(function () {
    var i = 1;
    showCustomer(i);
    i++;
}, 5000);

只需将变量
i
的声明移动到
setInterval()调用之前即可:

var i = 1;

setInterval(function () {
    showCustomer(i);
    i++;
}, 5000);
您为
setInterval
设置为回调的匿名函数在代码中每5秒调用一次。在每次调用中,您都将
i
设置为1,这样每次都会重置它


i
移到
setInterval
回调之外,使其保持当前值。

每次使用
var
时,都会重新声明该变量的值。因此,您只需申报一次计数器

每次浏览器调用回调
showCustomer
时,
if语句
都会评估浏览器是否应该进行新调用

clearInvertal()
这是停止
setInterval()
方法的方法

var id=1;
var show5times=window.setInterval(showCustomer,5000);
函数showCustomer(){
警报(id);
id++;
如果(id>5){
窗口清除间隔(显示5次);
}

}
谢谢,但当我等于5岁时,我怎么能停下来重新开始呢?@Maxim--请看。事先搜索总是一种很好的做法。我看了这篇文章,但不明白。@Maxim--但它很直截了当。在变量中指定
setInterval
的返回值,例如
x
。在回调中,检查是否
i==5
,然后使用
x
调用
clearinterval