timer=setTimeout(function(){
//dosth
clearTimeout(timer);
timer=null;
},2000)
timer=null起不到终止计时器的作用,只是给timer变量赋了值
timer 只是一个正整数,你设置 null 又有什么用呢?
var x = setInterval(function(){
alert()
x = null;
},1000);
这样可以看出来问题。
clearTimeout(timer)清除了timer指向的定时器,timer=null,是修改timer的指向,是timer这个变量不指向某个定时器,然而并没有清除这个定时器,定时器依旧可以使用