防抖节流简单版(立即执行和延时执行)

 

.

  /**
   * @param {fn} 
   * @param {time} 时间间隔ms
   * @param {isRun}  是否立即执行:true false
   * @return {*}
   */

 /**
  * 防抖
  */
function fangDou(fn, time, isRun){ let timer = null; return function(...arg){ if(timer){ clearTimeout(timer) }else{ isRun && fn(...arg) } timer = setTimeout(()=>{ timer = null; isRun || fn(...arg) }, time) } }

  /**
   * 节流
   */
  function jieLiu(fn, time, isRun){
    let timer = null;
    return function(...arg){
      if(!timer){
        isRun && fn(arg)
        timer = setTimeout(()=>{
          timer = null;
          isRun || fn(...arg)
        }, time)
      }
    }
  }

 

posted @ 2021-01-18 14:50  青云码上  阅读(585)  评论(0编辑  收藏  举报