countUp()和countUp之间的差异

时间:2013-06-05 21:05:33

标签: javascript html timer

我有一个脚本可以计算一个方框中的数字(实际上,在本练习中 - > http://jqexercise.droppages.com/#page_0022_),每1秒就像这样。

var target = $("#target input");
var countUp = function(){
    target.val(parseInt(target.val())+1);   
        setTimeout(countUp,1000);          // this line
};

countUp();

我的问题是,当我在countUp标记的行上将countUp()更改为// this line时,它会立即计数到15616.这些之间有什么区别?

4 个答案:

答案 0 :(得分:3)

countUp将该函数作为对象引用。在JavaScript中,一切都是一个对象,包括函数,并且可以传递。 countUp()调用函数countUp并返回其值。

答案 1 :(得分:2)

()添加到函数中会立即调用它,而仅使用函数名实际上是将其作为参数传递。

答案 2 :(得分:1)

countUp()是函数的递归调用。每次调用函数都会立即再次调用它,并且返回值(undefined)将传递给setTimeout。

这将是一个无限循环,除了我认为接收非函数的setTimeout的异常在1秒后中断它,导致在15616停止。

答案 3 :(得分:1)

简而言之,setTimeout(countUp,1000);设置每隔n秒以毫秒为单位执行计数功能的时间。在这种情况下,这将是1秒。 countup只是作为参数传递到setTimeout函数中。

相关问题