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)
为什么我不能直接使用函数名?
在第一个例子中,你有
setInterval(displayNumber(), 500);
Run Code Online (Sandbox Code Playgroud)
你是直接调用 displayNumber,而不是将其作为参数传递.
实际上,使用
setInterval(displayNumber, 500);
Run Code Online (Sandbox Code Playgroud)
应该足够了(注意缺少(),所以它不被调用,而是作为参数传递).