推 gholk: 二個函數都是印出 i 的值,但 settimeout 是在一段時間後 09/12 19:44
→ gholk: 才執行。執行時 i 的值已經是 10 了。 09/12 19:45
→ gholk: 閉包是指函數宣告時會把外界的變數也包進來,會一層層往外 09/12 19:46
→ gholk: settimeout 具體來說是到所有 statement 都結束後才會開始 09/12 19:48
推 shter: for(var i=0; i<10; i++){ 09/13 00:07
→ shter: function test(p){console.log(p);}(i) 09/13 00:09
→ shter: } 09/13 00:09
→ shter: 把 i 傳給 test,test 用變數 p 去接收 09/13 00:10
推 x246libra: 這應該算callback問題 09/13 00:11
→ mirtac: 你需要了解的是同步、非同步的觀念 09/13 00:55
→ Rplus: use let to replace var 09/15 02:24
推 Gold740716: 這裡用 let 也是一樣的結果,除非你用 const 09/15 14:20
→ Gold740716: for (const i of [0..10]) 09/15 14:20
→ Gold740716: 喔抱歉 js 還沒有 [0..10] 這種用法 09/15 14:21
推 mmis1000: 你可以把Number 的 iterator改掉,就可以 [...10] 了 09/16 02:52
→ mmis1000: 當然正常人不會亂改這種東西 09/16 02:53