需求:
设置一个计时器,它的时间是可以变化的,如下(a是可以变化的):
var a = 100;
var timer = setInterval(function() {
a += 1000;
console.log(a);
}, a);
如果像上面这样写的,看上去是可以实现的,但是不能达到我们需要的效果,原因就是定时器在生成的那一刻,属性已经确定了,不能再改变,除非我们重新生成一个新的定时器;
方法如下:
var a = 100;
(function resetTimer() {
var timer = setInterval(function() {
a += 1000;
console.log(a);
resetTimer();
clearInterval(timer);
}, a);
})();
调用自身函数,这样就能实现以上需求。