简体   繁体   中英

setTimeout(): If not defined in EcmaScript spec, where can I learn how it works?

I had another question in SO about setTimeout() , where a user mentioned that if the function argument is a string it gets evaluated in global scope, other wise it's not . This was an eye-opener, so I tried to find more info about how setTimeout actually works, but it's not part of the EcmaScript spec and not even MDN had that specific of of information I found in SO.

Is there some good reference about how setTimeout() works?

setTimeout and such aren't in the ECMAScript specification because they're not JavaScript features. They're features of the browser environment's window object. Other environments (Windows Scripting Host, NodeJS, etc.) won't necessarily have those features.

The W3C has been trying to standardize the window object and its various features (including setTimeout ), the latest is in the timers section of the HTML5 spec . A lot of it is codifying what browsers already do, although some of it (like saying that the minimum interval value must be 4 [milliseconds]) seems (to me) to be out-of-place for an API specification and implementations seem to make up their own minds ( in tests , you can see current browsers happily doing a shorter interval, with the apparent exception of Opera which appears to do what the spec says).

The setTimeout() method is a method on the window object. You can find the link to the MDN documentation below:

https://developer.mozilla.org/en/DOM/window.setTimeout

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM