开发者社区> 问答> 正文

手写防抖(Debouncing)和节流(Throttling)

手写防抖(Debouncing)和节流(Throttling)

展开
收起
kun坤 2019-11-28 14:07:37 457 0
1 条回答
写回答
取消 提交回答
  • // 防抖函数
    function debounce(fn, wait) {
      let timer;
      return function() {
        if (timer) clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(this, arguments);
        }, wait);
      };
    }
    
    // 节流函数
    function throttle(fn, wait) {
      let prev = new Date();
      return function() {
        const args = arguments;
        const now = new Date();
        if (now - prev > wait) {
          fn.apply(this, args);
          prev = new Date();
        }
      };
    }
    
    2019-11-28 14:07:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载