為什么函數(shù)里面的setTimeout會(huì)導(dǎo)致函數(shù)不斷執(zhí)行,不是只執(zhí)行一次嘛
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</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>
為什么函數(shù)里面的setTimeout會(huì)導(dǎo)致函數(shù)不斷執(zhí)行,不是只執(zhí)行一次嘛
2017-02-22
我是這么理解的 1.函數(shù)被調(diào)用,所以開始走函數(shù)里面的語(yǔ)句 結(jié)果顯示0 (此時(shí)因?yàn)閚um=0)
? ? ? ? ? ? ? ? ? ? ? ? ? ?2.函數(shù)里面走到語(yǔ)句setTimeout,意思就是過(guò)1s之后再調(diào)用startCount()
? ? ? ? ? ? ? ? ? ? ? ? ? ?3.然后函數(shù)再被調(diào)用,又開始走函數(shù)里面的語(yǔ)句,結(jié)果顯示 (num+1)的結(jié)果。
然后一直2,3,2,3,2,3,2,3步驟重復(fù)
但是我有個(gè)問(wèn)題。。。為什么我沒(méi)有寫onclick,沒(méi)有任何最初調(diào)用函數(shù)的語(yǔ)句,他就可以直接開始計(jì)數(shù)了???
2017-03-28
每1s調(diào)用自身一次 不停的遞歸
2017-02-17
因?yàn)槟愕?setTimeout("startCount()",1000);里面調(diào)用了startCount(),屬于遞歸調(diào)用,因此才不停的被執(zhí)行。。。
2017-02-17
setTimeout("startCount()",1000);//1000ms后再次調(diào)用startCount()
2017-02-17
buzhidao