<!DOCTYPE HTML><html><head><script type="text/javascript"> var num=0,i; function timedCount(){ document.getElementById('txt').value=num; num=num+1; i=setTimeout(timedCount,1000); } setTimeout(timedCount,1000); function stopCount(){ clearTimeout(i); }</script></head><body> <form> <input type="text" id="txt"> <input type="button" value="Stop" onClick="stopCount()"> </form></body></html>setTimeout()这个方法不是延迟函数表达式的执行吗,我知道timeCount()函数的外部用 setTimeout(timedCount,1000);是让timeCount()这个函数1秒后执行,但是并没有看出这个函数怎么就让num循环叠加了,是因为内部引用了 i=setTimeout(timedCount,1000);吗。但这个又是给计数停止提供参数i啊,怎么回事啊!num是是怎么循环起的啊?
1 回答
已采纳
qq_安安_17
TA贡献49条经验 获得超52个赞
var num=0,i; function timedCount(){ document.getElementById('txt').value=num; num=num+1; /*num每次+1*/ i=setTimeout(timedCount,1000); /*这里运用递归,实现循环1秒执行一次*/ } setTimeout(timedCount,1000); /*调用定义的timedCount()函数,延迟1秒执行*/ function stopCount(){ clearTimeout(i); /*停止计时*/ }
你可以专门看递归,函数不断的调用函数本身,实现循环,在其他语言也常见的~~
添加回答
举报
0/150
提交
取消