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

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

setTimeout(adDown,1)執行函數的格式不是應該是setTimeout('adDown()',1)

setTimeout(adDown,1)執行函數的格式不是應該是setTimeout('adDown()',1),為什么代碼里面直接用函數名字就可以啦,初級菜鳥,望大神指教!



正在回答

3 回答

setTimeout雙引號中的作用域不捕捉局部變量,不用雙引號包著的是捕捉局部作用域的。例如

var a = function()
??? {
??????? alert(1111)
??? }
??? function abc()
??? {
??????? var a= function ()
??????? {
??????????? alert(2222)
??????? }
??????? setTimeout("a()",3000)//這個調用的全局函數a

??????? setTimeout(a,3000)//這個調用的局部函數a

這是我最近搜索的答案,感覺這個解釋更合理點。

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

我的理解是a_fun這只是函數名,a_fun()才是函數吧

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

因為setTimeout第一個參數是函數...比如setTimeout(a_fun,1000)這樣是可以的,a_fun是一個函數.
但是setTimeout(a_fun(),1000);這樣就不行了.因為這里a_fun()其實是函數的返回值了,所以你要加上引號,

看一下w3c上的?http://www.w3school.com.cn/jsref/met_win_settimeout.asp

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

舉報

0/150
提交
取消
網頁廣告特效
  • 參與學習       40172    人
  • 解答問題       132    個

原來這么EASY,從淺到深,逐步優化代碼,讓你深入理解

進入課程

setTimeout(adDown,1)執行函數的格式不是應該是setTimeout('adDown()',1)

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

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

幫助反饋 APP下載

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

公眾號

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