这是一些示例代码的链接。
在我开始测试之前,我假设 a 的返回值setTimeout()
是某种浏览器对象。
事实上,它似乎是一个简单的整数。我还相信将返回值setTimeout
赋给一个全局变量意味着只能有一个这样的对象。但正如您将看到的,如果您多次单击“启动计时器”按钮,则可能有多个计时器同时运行。
例如
- 我点击开始按钮
- 该脚本创建一个超时
- 是
timeout 1
,由于五秒内着火 - 一秒钟后,我再次点击,现在有一个
timeout 2
- 现在我要在四秒和五秒内
timeout 1
开火timeout 2
- 我点击停止按钮,只有
timeout 2
被清除
用户点击创建多个计时器的问题可以通过在设置之前始终清除当前超时变量来解决。但我真的很想了解 Javascript 在这里实际做了什么。