を、コードを入れていない私は、次のコード形式here .Thisサイトは、なぜこの行はのsetTimeoutゼロに設定する理由は、無限再帰ループに
かしらjavascript.Butで非同期コールバック関数とイベントループを説明しようとした取得timer = setTimeout(arguments.callee, 0)
遅延なしで実行しているときに再帰的ループを作成しませんでした。settimeoutは何度も呼び出されるため、実際には文が実行されると次のIF文は実行されません。
var i = 0, diff = 0, d = new Date()
var timer = setTimeout(function() {
diff += new Date() - d
timer = setTimeout(arguments.callee, 0)
if (i++==1000) {
clearTimeout(timer)
alert("Resolution: "+diff/i)
}
d = new Date()
}, 0)
質問がありません。どうしたの? – eisbehr
「遅延なし」は完全に正しいわけではありません。 [より多くの4-10msの最小遅延のような](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout#Nested_timeouts_forced_to_%3E4ms) – Thomas
私は彼がsetTimeout )、タイマー関数はすぐに実行されるので、コードは決して 'if'ステートメントに到達しません。彼は基本的に、なぜコードが 'if'ステートメントに当たるかを尋ねます。 –