百兽凯多00
2017-02-17 19:25
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
setTimeout("startCount()",1000);
}
</script>
<body>
<form>
<input type="text" id="count"/>
<input type="button" value="go" onClick="startCount()"/>
</form>
</body>
</html>
为什么函数里面的setTimeout会导致函数不断执行,不是只执行一次嘛
我是这么理解的 1.函数被调用,所以开始走函数里面的语句 结果显示0 (此时因为num=0)
2.函数里面走到语句setTimeout,意思就是过1s之后再调用startCount()
3.然后函数再被调用,又开始走函数里面的语句,结果显示 (num+1)的结果。
然后一直2,3,2,3,2,3,2,3步骤重复
但是我有个问题。。。为什么我没有写onclick,没有任何最初调用函数的语句,他就可以直接开始计数了???
每1s调用自身一次 不停的递归
因为你的 setTimeout("startCount()",1000);里面调用了startCount(),属于递归调用,因此才不停的被执行。。。
setTimeout("startCount()",1000);//1000ms后再次调用startCount()
buzhidao
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题
回答 3
回答 3