Here is the simple example of two similar use of setInterval function:
http://codepen.io/anon/pen/MwYOOJ
In the first example setInterval function does not work, in the second version where below syntax was used it's working fine.
/* 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);
In specification I can find:
setInterval(function,milliseconds,param1,param2,...)
Why can't I use function name directly?
In the first example, where you have
you are calling
displayNumber
directly, instead of passing it as parameter.In fact, using
should be sufficient (notice the lack of
()
, so that it is not called but rather passed as parameter).