この記事では、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 を出力することである場合は、方法を変更して、関数パラメーターを使用して 0...9 を保存できます (実際には、クロージャも使用されます):