ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript の setTimeout() のクロージャ機能を使用するときに注意する必要がある問題
この記事では、JavaScript の setTimeout(0) のクロージャ機能を使用するときに注意する必要がある問題を主に紹介します。必要な友達はそれを参照してください。
setTimeout は、特定の関数の実行を遅らせるためによく使用されます。は:
コードをコピーします コードは次のとおりです:
setTimeout(function(){ … }, timeout);
setTimeout(function...,0) は、たとえば、非同期処理に使用されます:
コードをコピーします コードは次のとおりです。次のように:
function f(){ … // get ready setTimeout(function(){ …. // do something }, 0); return …; }
setTimeout で設定された関数プロセッサの前に、関数 f が返されます。
非同期処理を使用する場合、特にクロージャー機能を使用する場合は特に注意してください。
例:
コードをコピーします。コードは次のとおりです:for(var i = 0 ; i < 10; i++){
setTimeout(function(){
console.log(i);
}, 0);
}
初めてこの方法を使用する人向け 学生にとっては、プログラムは 0...9 を出力すると思うかもしれませんが、結果は実際に 10 10 を出力します
目的が 0...9 を出力することである場合は、方法を変更して、関数パラメーターを使用して 0...9 を保存できます (実際には、クロージャも使用されます):
コードをコピーしますコードは次のとおりです:for(var i = 0 ; i < 10; i++){
setTimeout((function(i){
return function(){
console.log(i);
}
})(i), 0);
}
JavaScript の setTimeout() のクロージャ機能を使用するときに注意する必要があるその他の問題については、PHP 中国語 Web サイトの関連記事に注目してください。