@ すべての印刷6:期待される結果 のために(VAR。; I <= 5; I ++ I = 1 ){ setTimeout(関数(){ console.log(I); }、私は 1000 * ) }
遅延されたコールバック関数が終了するまで実行される。実際に、タイマーは各反復のsetTimeoutを実行するために実行されている場合でも(...、0)、依然としてサイクルの終了後に実行される。端であるにおいて、全てのコールバック関数どのような「欠陥」とは、意味論と作用させ
ため(VAR I 1 =、iは<5 =; I ++ ){ (関数(){ setTimeout(関数タイマー(){ console.log(I); }、私は 1000 * ) })() } // 666666
またはフォームの閉鎖はletで達成することができます
ため(VAR I 1 =、iは<5 =; I ++ ){ (関数(){ あっ = J で setTimeout(関数(){ console.log(J)。 }、J * 1000年) })() } // 1 2 3 4 5 6 ため(VAR I 1 =、iは<5 =; I ++ ){ (関数(J){ setTimeout(関数(){ console.log(J)。 }、J * 1000年) })(私) } // 使用容易 のために(容易iは= 1; I <= 5; I ++ ){ setTimeout(関数タイマー(){ console.log(I); }、私は 1000 * ) }