即時実施のためのsetTimeoutコールバック関数

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最初の引数がなければなりませんコードにコンパイルする必要性関数法を、そして実行可能なコードに行を直接場合、私は申し訳ありませんが、これは、すぐには遅延効果を実行されません

おすすめ

転載: www.cnblogs.com/psxiao/p/11408330.html