亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么函數里面的setTimeout會導致函數不斷執行,不是只執行一次嘛

<!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會導致函數不斷執行,不是只執行一次嘛


正在回答

5 回答

我是這么理解的 1.函數被調用,所以開始走函數里面的語句 結果顯示0 (此時因為num=0)

? ? ? ? ? ? ? ? ? ? ? ? ? ?2.函數里面走到語句setTimeout,意思就是過1s之后再調用startCount()

? ? ? ? ? ? ? ? ? ? ? ? ? ?3.然后函數再被調用,又開始走函數里面的語句,結果顯示 (num+1)的結果。

然后一直2,3,2,3,2,3,2,3步驟重復


但是我有個問題。。。為什么我沒有寫onclick,沒有任何最初調用函數的語句,他就可以直接開始計數了???

0 回復 有任何疑惑可以回復我~
#1

百獸凱多00 提問者

你怎么寫的
2017-02-23 回復 有任何疑惑可以回復我~
#2

慕數據1008917 回復 百獸凱多00 提問者

我就是你這么寫,但是我后來把onclick刪除了。刷新了一下之后,他就自動開始計數了。。。。。
2017-02-23 回復 有任何疑惑可以回復我~
#3

百獸凱多00 提問者

出bug了吧...沒調用應該不會自動吧...
2017-02-23 回復 有任何疑惑可以回復我~
#4

慕數據1008917 回復 百獸凱多00 提問者

我今天又試了試。。好像確實是
2017-02-24 回復 有任何疑惑可以回復我~
查看1條回復

每1s調用自身一次 不停的遞歸

1 回復 有任何疑惑可以回復我~

因為你的?setTimeout("startCount()",1000);里面調用了startCount(),屬于遞歸調用,因此才不停的被執行。。。

0 回復 有任何疑惑可以回復我~

setTimeout("startCount()",1000);//1000ms后再次調用startCount()

0 回復 有任何疑惑可以回復我~

buzhidao




0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么函數里面的setTimeout會導致函數不斷執行,不是只執行一次嘛

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號