慕运维2603834
2015-10-19 22:01
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
}
setTimeout("startCount()",1000)
不是说只执行一次么?为什么会一直不停的计数?难道因为“num+=1”那也应该执行一次啊?看不懂额。。
这是一个递归的过程啊,就相当于你在一个函数startCount()中执行setTimeout("startCount()",1000)然后又一次调用了startCount()然后它又继续执行这个函数中的setTimeout("startCount()",1000)。。。如此循环往复,而里面定义的document.getElementById('count').value=num;num=num+1;就会随着每一次函数的执行而不断的改变了,好好清理一下思路吧。
为什么写在里面会不停的调用呢?
按照你写的就是只执行一次的,要是在函数里面再加入一句setTimeout("startCount()",1000)才会在函数中递归调用startCount() 从而使得文本域中输入出的函数值一直增加,相当于一个计时器的效果了
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题
回答 2
回答 2
回答 4
回答 3
回答 1