setInterval javascript - 如何调用函数

setInterval javascript - how to call function

这里是setInterval函数的两个相似用法的简单例子:

http://codepen.io/anon/pen/MwYOOJ

在第一个示例中,setInterval 函数不起作用,在使用以下语法的第二个版本中,它工作正常。

/* This part does not work */
var i = 0;
function displayNumber() {
  i++;
  $('#result').html(i);
}

setInterval(displayNumber(), 500);

/* This part does work */
var j = 0;
function displayNumberOk() {
  j++;
  $('#result-ok').html(j);
}

setInterval(function() { displayNumberOk() }, 500);

在规范中我可以找到:

setInterval(function,milliseconds,param1,param2,...)

为什么我不能直接使用函数名?

在第一个例子中,你有

setInterval(displayNumber(), 500);

您正在 直接调用 displayNumber,而不是将其作为参数传递。

事实上,使用

setInterval(displayNumber, 500);

应该足够了(注意缺少 (),因此它不是 called 而是 passed 作为参数).