2012-01-13 19 views
6

私はanother question in SO about setTimeout()を持っていました。関数の引数がグローバルスコープで評価される場合、ユーザーはと言いましたが、それ以外の場合はではありません。これは目が見えませんでしたので、setTimeoutが実際にどのように機能するかについて詳しく知りたいと思いましたが、EcmaScript仕様の一部ではなく、MDNでさえその特定の情報を持っていませんでした。setTimeout():EcmaScript仕様で定義されていない場合、どのように動作するのかはどこで知ることができますか?

setTimeout()の仕組みについての参考資料はありますか?

+2

【こちら】(https://developer.mozilla.org/en/DOM/window.setTimeout)MDNのページです:あなたは、以下のMDNのドキュメントへのリンクを見つけることができます。 – Pointy

+1

HTML5ドラフト:http://dev.w3.org/html5/spec/Overview.html#timers –

+0

MDNには、次のような有用な情報があります。「setTimeout()によって実行されるコードは別の実行コンテキストで実行されますそれが呼び出された機能に変更されます。 –

答えて

9

setTimeoutなどはJavaScript機能ではないため、ECMAScript仕様には含まれていません。それらはブラウザ環境のwindowオブジェクトの機能です。他の環境(Windows Scripting Host、NodeJSなど)には必ずしもこれらの機能が備わっているとは限りません。

W3Cは、windowオブジェクトとそのさまざまな機能(setTimeoutを含む)、the latest is in the timers section of the HTML5 specを標準化しようとしています。多くのブラウザでは、ブラウザの仕様を整理していますが、(最小間隔値は4 [ミリ秒]でなければならないと言っていますが)API仕様のアウトオブプレイスであるようです(in tests)、現在のブラウザが短い間隔で幸せに見えることがわかります。スペックは何をしているかのように見えるOperaの例外です。

+0

うわー、それらのHTML5の仕様は、いつも気味悪いです。しかし、私はウェブ労働者の状況については考えていませんでした。 – Pointy

+0

私はW3Cウィンドウオブジェクトの仕様が放棄されたと思います。 HTML5は 'window'オブジェクトを完全に指定するか、少なくとも試みます。 –

+0

この草案は「これを書く必要がある」か「ここに入れるべきか」の半分でいっぱいでした。 w3c仕様のために笑いの種類。ところで、あなたの最後のリンクが壊れています。 – rvighne

関連する問題