防抖原理以及簡單實現

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