页面加载中,请稍候 。。。
 

JavaScript 函数防抖

2020-04-04 15:22:23 JavaScript jQuery 443

不断触发一个函数,在规定时间内只让最后一次生效,前面都不生效;

/**
   * @desc 函数防抖
   * @param func 目标函数
   * @param wait 延迟执行毫秒数
   * @param immediate true - 立即执行, false - 延迟执行
   */
function debounce(func, wait, immediate) {
    let timer;
    return function() {
      let context = this,
          args = arguments;
           
      if (timer) clearTimeout(timer);
      if (immediate) {
        let callNow = !timer;
        timer = setTimeout(() => {
          timer = null;
        }, wait);
        if (callNow) func.apply(context, args);
      } else {
        timer  = setTimeout(() => {
          func.apply(context, args);
        }, wait)
      }
    }
}
暂无相关数据!
公告
u4fa0 & u8273
本博客诞生于 2020 年 3 月 5 日,是一个以编程开发为主的技术型博客,希望我的博文能够帮助到你。
定制开发流程
业务咨询|提交需求|开始实施|确认|售后服务
联系我们