[問題] 閉包
請問版上的大神們:
for (var i = 0; i < 10; i++) {
function test() {
console.log(i);
}
test();
}
上面的程式跑下去,它會跑出 0,1,2,3...
但若是改成這樣就不會了:
for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 0);
}
想請問這是為什麼呢?
setTimeout是不會馬上執行是嗎?
setTimeout跟其它的一般函式有什麼不一樣嗎?
另外我以為函式包在函式裡才是閉包
for(xxxxxx){} 這個for迴圈也是函式嗎?
新手入門,還請多多指點,感激感激~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.51.73
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1536744248.A.0B0.html
※ 編輯: SheueJi (36.230.51.73), 09/12/2018 17:26:39
推
09/12 19:44,
6年前
, 1F
09/12 19:44, 1F
→
09/12 19:45,
6年前
, 2F
09/12 19:45, 2F
→
09/12 19:46,
6年前
, 3F
09/12 19:46, 3F
→
09/12 19:48,
6年前
, 4F
09/12 19:48, 4F
推
09/13 00:07,
6年前
, 5F
09/13 00:07, 5F
→
09/13 00:09,
6年前
, 6F
09/13 00:09, 6F
→
09/13 00:09,
6年前
, 7F
09/13 00:09, 7F
→
09/13 00:10,
6年前
, 8F
09/13 00:10, 8F
推
09/13 00:11,
6年前
, 9F
09/13 00:11, 9F
→
09/13 00:55,
6年前
, 10F
09/13 00:55, 10F
→
09/15 02:24,
6年前
, 11F
09/15 02:24, 11F
推
09/15 14:20,
6年前
, 12F
09/15 14:20, 12F
→
09/15 14:20,
6年前
, 13F
09/15 14:20, 13F
→
09/15 14:21,
6年前
, 14F
09/15 14:21, 14F
推
09/16 02:52,
6年前
, 15F
09/16 02:52, 15F
→
09/16 02:53,
6年前
, 16F
09/16 02:53, 16F
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章