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 作为参数).
这里是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 作为参数).