//在連續觸發某個函數時,只在最後一次讓對應的函數執行
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;
複製代碼