2016-04-20 11 views

Antwort

6

Von MDN:

Spezifikation WHATWG HTML Lebensstandard

... und Sie werden es nicht in ECMA-262 5.1 sehen.

+0

https: // html .spec.whatwg.org/multipage/webappapis.html # windoworworkerglobalscope – apsillers

0

Es ist Teil des Objekts window im Browser, nicht in ECMAScript definiert. Daher ist es in anderen Umgebungen wie Node nicht garantiert.

+0

Klarstellung: Es stimmt zwar, dass jede beliebige ECMAScript-konforme Umgebung möglicherweise nicht 'setTimeout' hat, insbesondere Node.js [* garantiert]. (https://nodejs.org/api/timers.html#timers_settimeout_callback_delay_arg). – apsillers

+0

@apsillers Beachten Sie jedoch, dass sich die Node.js-Implementierung von der Web-Version unterscheidet. Es gibt ein Objekt anstelle einer Zahl zurück. – Oriol

3

Die setTimeout() Funktion tatsächlich durch den Browser des window Objekt wie als solche ausgesetzt ist, sind sie nicht unbedingt in der ECMAScript-Spezifikation definiert, weil sie nicht JavaScript-Funktionen sind, dann sind sie Funktionen des Browsers selbst.

Sie können in der zuvor verknüpfte Dokumentation von der Spezifikation Abschnitt sehen, dass es der WHATWG HTML Lebensstandard verwendet:

enter image description here

Wie wie split() auf eine Javascript-Funktion gegenüber, die EMACScript explizit verwendet :

enter image description here

+0

Stimme ab, es ist eine sehr hilfreiche Antwort. Aber leider ist es nicht die erste richtige Antwort auf meine spezifische Frage. – faressoft

+0

_ "durch das Browser-Fenster-Objekt als solche ausgesetzt ... sie sind keine JavaScript-Funktionen, sie sind Funktionen des Browsers selbst" _ Alles, was durch den ECMAScript-Standard definiert ist, wird auch durch 'Fenster' exponiert. Und JavaScript wird manchmal als ECMAScript + -Umgebungs-APIs definiert. – zeroflagL