Layzie/JavaScript-Garden — Issue #4: 日本語訳で気が付いた点のまとめ#4
Author: shigeki
Created: 2011-12-06 05:25:49+00:00
State: open

おそらくこれが最後のレビュー結果になります。修正頑張ってください。

その他
settimeoutとsetInterval
setTimeoutが呼ばれた時に、タイムアウトのIDとfooこの先のおおよそ1000msに実行するスケジュールを返します。
→setTimeoutが呼ばれた時に、タイムアウトのIDを返し、この先おおよそ1000ms内に実行するように foo をスケジュールします。

コードが実行されているJavaScriptエンジンのタイマー分解能によって決まります。
この事実はJavaScriptがシングルスレッドのなので、他のスレッドでの実行を妨害してしまう事があるかもしれません。
これは、setTimeoutの呼び出しにより指定された正確なディレイで実行するという確実な賭けという意味ではありません。
→これは setTimeout関数の呼び出しで指定した遅延時間を正確に間違いなく得られるということでは決してありません。
コードが実行されているJavaScriptエンジンのタイマー分解能によって決まります。
この事実はJavaScriptがシングルスレッドのなので、他のスレッドでの実行を妨害してしまう事があるかもしれません。

fooが完了した瞬間に、実行を待っている間に10回以上呼び出されている事になります。
→fooが完了した瞬間に、実行を待っている呼び出しがさらに10個、既に存在しているでしょう。

さらに、文字列を関数に渡さないように推奨される理由として、それぞれのタイムアウト関数から呼び出されるという事があります。
→いずれかのタイムアウト関数で呼ばれる関数に引数を渡すために文字列を使用しないことはさらに推奨されています。

しかし、全てのタイムアウトのIDを追跡していく事は推奨されないので、それらは個別にクリアされます。
→それゆえ、替りに全てのタイムアウトのIDを追跡していく事が推奨されます。それで個別にクリアできます。