JS setTimeout / setInterval是否重用了返回值?

时间:2015-09-23 21:13:06

标签: javascript timer cross-browser

我知道setTimeoutsetInterval的返回值在给定的DOM中是唯一的,至少对于此时运行的计时器而言,但是一旦这些计时器中的一个完成或被取消,重复使用相同的数字?例如setTimeout输出setInterval已经给出的数字或类似的数字呢?

我的直觉是我可以依赖它们永远不会被重用。否则,我觉得有必要在计时器结束或我取消它时立即清除指向计时器标识符的变量,以免其他一些代码在指向不相关的计时器时偶然取消它(这是偶然的被分配了相同的标识符。)

假设它们不应该重复使用,是否有任何浏览器行为错误?

1 个答案:

答案 0 :(得分:2)

通过一系列规范和调用,setTimeout / setInterval 的返回值应来自“the list of active timers”:

  

实现WindowTimers接口的每个对象都有一个活动计时器列表。此列表中的每个条目都由一个数字标识,该数字在列表中对于实现WindowTimers接口的对象的生命周期必须是唯一的。

正如该部分所指定的那样,该数字对于(对象... window对象的生命周期是唯一的,该对象在页面的生命周期内保持。

然而,关于实施和“行为不端的浏览器”,我认为这不是真正的回答。