我发现一个有趣的现象,欢迎广大朋有来一起讨论,谁来解释啊!!!
现象:
当连续点击“Start”按钮时候,计时速度会加快,连续点击的越多计时就越快;之后再连续点击“Stop”按钮,计时速度就会慢慢减慢下来,直到停止下来为止。
我的理解是:
点击一次“Start”按钮,就触发一次“startCount”事件。连续多次点击“Start”按钮,就触发多个“startCount”事件。由于触发的是多个事件,造成文本框显示的值一会儿是这个事件显示的值,一会儿又是那个事件显示的值,再一会儿就是别的事件显示的值,由于事件是连续点击触发的,不在同一个时间点,不是同一时间触发的,所以看起来计时像是加快了很多,实际上每个事件还是每隔1s才出发的,这是我对点击"Start"按钮的理解。
对于连续点击“Stop”按钮,我却有点困惑和不解;连续点击“Start”按钮时,i=setTimeout("startCount()",1000)中 i 的值不是被连续多次点击“Start”按钮触发的事件一次又一次地覆盖掉吗?那即使是连续点击“Stop”按钮,也只能是将最后一次点击"Start"按钮触发事件时所返回的ID值才能被取消计时器啊?怎么连续点击“Stop”按钮后,就可以停止及时了呢?难道是每点击一次"Start"按钮触发一次事件,i就储存一个ID值,连续多次点击“Start”按钮,i中就有多个值?可是i不就是一个变量而已嘛?