setInterval javascript - 如何调用函数

Dav*_*vid 0 javascript setinterval

下面是两个类似使用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);
Run Code Online (Sandbox Code Playgroud)

在规范中,我可以找到:

setInterval(function,milliseconds,param1,param2,...)
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ari 6

在第一个例子中,你有

setInterval(displayNumber(), 500);
Run Code Online (Sandbox Code Playgroud)

你是直接调用 displayNumber,而不是将其作为参数传递.

实际上,使用

setInterval(displayNumber, 500);
Run Code Online (Sandbox Code Playgroud)

应该足够了(注意缺少(),所以它不被调用,而是作为参数传递).