//在连续触发某个函数时,只在最后一次让对应的函数执行
function debounce(fn,wait){//debounce处理过的函数都是防抖函数
wait = wait || 1000;
var timer = null;//建立一个标记 用来存放定时器的返回值
return function (){
clearInterval(timer);//每当用户输入的时候把前一个setTimeout清除掉
timer = setInterval(()=>{//而后又建立一个新的setTimeout,这样就能保证输入的字符后的interval 间隔内若是还有字符输入的话,就不会执行fn 函数
fn.apply(this,arguments);
},wait)
}
}
let fn = function(){console.log(this)}
let f = debounce(fn,1000)
window.onscroll = f;
复制代码