为什么添加clearInterval清除定时器后无法阻止加速

img

为什么即使在定义的函数action开始加了clearinterval,但多次点击按钮后也还是会加速。

timer为局部变量,即使你的acion函数一开始使用了清除定时器函数,参数timer也不是之前那个timer了。

你可以使用闭包的形式
function a(){
let timer
return function(){
if(timer){
clearInterval(timer)
}else {
timer = setInterval(......)
.......
}
}
}

然后监听函数里面
let fn = a()
fn()

有帮助的话望采纳

定时器本身就会越走越快,这是 setInterval 定时器自身的bug