用(VAR iが++; iが5 <I = 0 {) のsetTimeout((関数(I){ にconsole.log(I); })(i)において、iは 1000 * )。 }
setTimeout()コールバック関数がある即時実行機能、
営業成績は、コードを変更します:0,1,2,3,4,5すぐにプリントアウトし
、私はすぐにそれの値をプリントアウトなぜですか?
文字通りの意味の理解から:機能がすぐにコールバックを待たずに、すぐに実行されると、コードの実装はすぐにロードされ
、すぐに機能を返す関数を実行しようとすると、setTimeout関数は、これを実行することで機能を
ため(VAR I = 0; iは5 '; iは++ ){ たsetTimeout((関数(I){ にconsole.log(I); 戻り 関数(){ にconsole.log( '回调' ) はconsole.log(I) } } )は、(i)、私は 1000 * )。 }
実行結果:最初の関数を実行するには、実行機能機能直前に実行され、各iは1000秒ではconsole.log(「コールバック」)とはconsole.log(i)を係合します*
概要:setTimeout
最初の引数がなければなりませんコードにコンパイルする必要性や関数法を、そして実行可能なコードに行を直接場合、私は申し訳ありませんが、これは、すぐには遅延効果を実行されません