btn[0].onclick = function(){
var timer = null;
timer = setInterval(function(){
console.log('a');
},1000)
console.log(typeof timer); //返回的是一个number数据类型
}segmentfault
DOM事件必须用绑定时所使用的同一个函数才能解绑。这是由于DOM事件不是由JavaScript来触发的,而是浏览器触发的。无论你绑定不绑定处理函数,也无论你绑定多少个事件处理函数,事件就在那里,只要用户点击了元素,click事件就会触发。因此你再也不须要对这个事件进行处理的时候,只需解绑相应的函数便可。
而定时器事件不同,它是JavaScript设定的,你能够在一个网页中设定多个定时器,所以你须要一个独一无二的东西来表明特定的定时器。但你没法取消对定时器事件的绑定,只能关闭这个定时器(其实彻底能够把定时器事件设定成跟DOM事件同样的风格,先设置一个定时器,而后能够随时给这个定时器绑定、解绑处理函数而不是直接关闭处理器。之因此没有这样设计,应该是历史缘由吧哈哈)。
定时器在JavaScript语言中并无相应的类型,所以咱们只能得到一个与定时器有关的数据,这样才能使用系统提供的函数来启动和关闭它。这个数据能够是一个string,一个number,甚至是一个array什么的都无所谓,可是最简单有效的方式就是用一个number了。浏览器
segmentfault也是一个中国开发者技术社区,感受很厉害的样子
做者:陈安
连接:https://www.zhihu.com/question/31932536/answer/53917339
来源:知乎
著做权归做者全部,转载请联系做者得到受权。函数