问答详情
源自:8-5 计时器setTimeout()

setTimeout疑问

<script type="text/javascript">
var num=0;
function numCount(){
 document.getElementById('txt').value=num;
 num=num+1;
 setTimeout("numCount()",1000);
 }
</script>
setTimeout不是只能执行一次吗?为什么这样设置后,结果里的数可以自己从0开始,自动往上加,不停呢?还有,把setTimeout("numCount()",1000);换成setInterval("numCount()",1000);后,输入框的里数不是按照“0,1,2,3...."变化,而是“1,3,5,7,11,20...”这样的变化呢?


提问者:天窗的蚂蚁 2016-02-24 10:09

个回答

  • SwordEdge
    2016-02-24 10:21:45

    setTimeout固然是执行一次,但是你调用函数的时候是调用了numCount(),而它里面有setTimeout("numCount()",1000),所以就形成了一个递归。

    从而出现从0开始,并且不停地自动往上加1.