版权声明:本文为博主原创文章,转载请注明出处。如对文章知识有关问题欢迎评论和右侧chat快问提出。 https://blog.csdn.net/sir1241/article/details/78388129
var throttle = function(fn, delay, mustRunDelay){
var timer = null;
var start;
// 这里是利用一个闭包来保存变量,避免污染全局变量
return function(){
var context = this,
args = arguments,
current = +new Date();
clearTimeout(timer);
if(!start){
// 设置开始时间标记
start = current;
}
if(current - start >= mustRunDelay){
fn.apply(context, args);
start = current;
}
else {
timer = setTimeout(function(){
fn.apply(context, args);
}, delay);
}
};
};