这是两个类似使用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,...)
为什么我不能直接使用函数名?
答案 0 :(得分:6)
在第一个例子中,你有
setInterval(displayNumber(), 500);
您直接调用 displayNumber
,而不是将其作为参数传递。
实际上,使用
setInterval(displayNumber, 500);
应该足够了(注意缺少()
,因此它不是称为,而是传递作为参数。)