防抖函数&节流函数

// 防抖函数,频繁操作,只执行最后一次操作
   function xx(fun,t){
    let timer
    return function(){
      if(timer){
        clearTimeout(timer)
      }
      timer=setTimeout(function(){fun()},t)
    }
   }
   // 节流函数,频繁操作,只执行一次操作
   function xx2(fun,t){
    let timer = null
    return function(){
      if(!timer){
        timer=setTimeout(function(){
          fun()
          timer = null // 在setTimeout中,执行clearTimeout不起作用,所以需要将timer置为null
        },t)
        
        }
      }
   }
   function log(){
     console.log('log')
   }
   document.querySelector('.btn1').addEventListener('click',xx(log,500))
   document.querySelector('.btn2').addEventListener('click',xx2(log,500))
     

 

posted @ 2025-10-16 11:23  东方不败--Never  阅读(5)  评论(0)    收藏  举报