好的,我已经在这里和其他地方查看了关于 jquery/javascript 中的 setInterval 的几篇帖子,关于答案的恼人之处在于我没有了解解决方案为何有效。
请考虑:
使用匿名函数,我们可以设置警报以重复输出“兔子”:
setInterval(function(){
alert("bunnies")
},3000);
但是如果我们想使用一个非匿名函数,我们必须编写代码
设置间隔(跳,3000);
其中功能:
function hop(){
alert("bunnies");
}
如果我们尝试编码:
setInterval(hop(),3000);
hop 只执行一次。我不明白为什么会这样。我已经阅读了各种关于此的 SO,这意味着我们需要传递对 setInterval 的引用。这是否意味着第一种形式 setInterval(hop,3000); 通过引用传递。如果是这样,这可以解释吗?
因此我们有一个问题。显然,希望能够将参数传递给函数跳跃,如.....
setInterval(hop("bunnies"),3000);
其中功能:
function hop(msg){
alert(msg);
}
这确实会导致调用 hop 并输出“bunnies”,但再次调用该函数仅一次。
因此,据我所知,将参数传递给由 setInterval 控制的函数的唯一方法是将其合并到匿名函数中:
setInterval(function(){
hop("bunnies")
},3000);
这会传递参数并重复执行 hop,每 3 秒提醒我们注意兔子(注意兔子非常重要)。
因此问题:
- 这是唯一允许您传入参数的语法吗?
- 为什么 setInterval(hop("bunnies"),3000); 不行。