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

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

setTimeout("startCount()",0)與直接調用函數startCount()有什么區別

以本題為例?

var num=0;

? function startCount() {

? ? document.getElementById('count').value=num;

? ? num=num+1;

? ? setTimeout("startCount()",1000)

? }

? ? setTimeout("startCount()",0);//成功執行 相當于直接運行而使用starCount();或者window.onload=starCount();則失敗,必須把腳本放到body最后面才可以成功執行,為什么


正在回答

4 回答

剛剛也搞不清楚這個問題,看了前面的回答,理解如下:直接執行函數,有()會立即執行,還沒加載完。用window.onload調用startCount,沒有()就可以了。而setTimeout("startCount()",0)立即執行的是setTimeout,不是"startCount()"。

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

加括號表示直接調用,window.onload=starCount()這句會無視onload事件讀到這一行直接執行starCount();此時如果dom沒讀完就會失敗,放到最后面是在前面dom都讀完之后再執行的,所以成功,改為window.onload=starCount;這種不帶括號的就放前放后都可以了

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

window.onload=starCount(),改為window.onload=starCount,原理上兩個應該是一樣的

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

舉報

0/150
提交
取消

setTimeout("startCount()",0)與直接調用函數startCount()有什么區別

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

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

幫助反饋 APP下載

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

公眾號

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