可以用setTimeout模拟setInterval,效果更好。
/**
* @param {function} 回调
* @param {Number} 间隔
* @param {Object} 额外参数
*/
interval: function(func, wait, arg){
var self = this
var inter = function(){
if(self.timeRemain != arguments[0][0]){
func.apply(null, arguments)
setTimeout(inter, wait, arg)
}
else {
func.apply(null, arguments)
arguments[0][1] && typeof arguments[0][1] == 'function' && arguments[0][1].call(null)
}
}
setTimeout(inter, wait, arg)
}
this.interval(function cb(){/*做点事情*/}, 1000, /*参数传递*/[0, function(){
}])
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…