Re: [問題] function 裡的 setTimeout 與 變數
※ 引述《s5846125 (陸奧鬼一)》之銘言:
: 又發現另一個狀況...
: function a() {
: var isWait = true;
: setTimeout("isWait=false", 2000);
: setTimeout("alert(isWait)", 3000);
: }
: function b() {
: var isWait = true;
: setTimeout("alert(isWait)", 3000);
: }
: 以上這兩個 function ,只差在第二行的 setTimeout(),
: 但是執行結果卻不相同,
: a() 會跳出訊息顯示「True」,
: 而 b() 會出現錯誤訊息「isWait is not defined」。
: 這樣是表示兩個 setTimeout() 裡面的變數是可以共用的?
: 還是有高手可以解說有其它的原因?
前者在eval的時候是設了一個全域變數 isWait ,
而後者讀到的時候 , 區域變數 isWait 已經不可見 , 所以出現undefined.
建議是採用function的方案來保存scope.
ex.
function b() {
var isWait = true;
setTimeout(function(){alert(isWait);}, 3000);
}
--
What do you want to have ? / What do you have?
從書本中,你可以發現我的各種興趣。
從CD中,你可以瞭解我所喜歡的偶像明星。
或許從文字你很難以瞭解一個人,但從物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.78.140
→
10/05 13:09, , 1F
10/05 13:09, 1F
推
10/06 15:19, , 2F
10/06 15:19, 2F
推
10/07 01:07, , 3F
10/07 01:07, 3F
→
10/07 10:19, , 4F
10/07 10:19, 4F
→
10/07 10:20, , 5F
10/07 10:20, 5F
→
10/07 10:20, , 6F
10/07 10:20, 6F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章