2015-04-27 61 views
0

下面是两个类似用途setInterval函数的简单例子:的setInterval JavaScript的 - 如何调用函数

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,...) 

为什么我不能直接使用功能的名称?

+2

为什么在这里发布代码的工作版本而不是破解版本?不要让人们访问链接来发现问题所在。 –

回答

6

在第一个例子,那就是你有

setInterval(displayNumber(), 500); 

调用displayNumber直接,而不是将它作为参数。

事实上,使用

setInterval(displayNumber, 500); 

应该是足够了(注意缺乏(),所以它不是而是通过作为参数)。

+0

谢谢@Matteo Tassinari这很有道理。 – David