防抖節流test

使用場景:onresizescrollmousemove ,mousehover 等

防抖函數如下:連續事件完全觸發完成之後,調用一次

    function debounce(fn, waitTime) {
      let timer = null;
      return function() {
        const context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, waitTime);
      };
    }

節流函數如下:當達到了一定的時間間隔就會執行一次

    function throttle(fn, waitTime) {
      let timer = null;
      return function() {
        const context = this;
        let args = arguments;
        if (!timer) {
          timer = setTimeout(() => {
            fn.apply(context, args);
            clearTimeout(timer);
          }, waitTime);
        }
      };
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章