setTimeout():如果 EcmaScript 规范中没有定义,我在哪里可以了解它是如何工作的?

2023-12-24

I had SO 中关于 setTimeout() 的另一个问题 https://stackoverflow.com/questions/8821765/settimeout-on-recursive-function-within-a-self-invoking-function,其中一位用户提到如果函数参数是一个字符串,它将在全局范围内进行计算,否则它不会。这令人大开眼界,所以我试图找到有关 setTimeout 实际工作原理的更多信息,但它不是 EcmaScript 规范的一部分,甚至 MDN 也没有我在 SO 中找到的特定信息。

有没有一些关于如何的好的参考setTimeout() works?


setTimeout这些并不在 ECMAScript 规范中,因为它们不是 JavaScript 功能。它们是浏览器环境的功能window目的。其他环境(Windows Scripting Host、NodeJS 等)不一定具有这些功能。

W3C 一直在努力标准化window对象及其各种特征(包括setTimeout), 最新的是 HTML5 规范的计时器部分 http://www.w3.org/TR/html5/webappapis.html#timers。其中很多内容都在编纂浏览器已经做的事情,尽管其中一些(比如最小间隔值必须是4[毫秒]) 似乎(对我来说)对于 API 规范来说是不合适的,并且实现似乎是自己决定的(in tests http://jsbin.com/aREWitER/1,您可以看到当前的浏览器很高兴地执行更短的间隔,但 Opera 显然是个例外,它似乎按照规范进行操作)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setTimeout():如果 EcmaScript 规范中没有定义,我在哪里可以了解它是如何工作的? 的相关文章

随机推荐