乐趣区

关于javascript:防抖和节流啥区别实现一个防抖和节流

防抖

在肯定工夫内执行一次,如果在此工夫内再次触发,则从新计时

const debounce = (func, timeout, immediate = false) => {
  let timer = null;
  return function (...args) {if (!timer && immediate) {func.apply(this, args);
    }
    if (timer) {clearTimeout(timer);
    }
    timer = setTimeout(() => {func.apply(this, args);
    }, timeout);
  }
}

在肯定工夫内执行一次,如果在此工夫内再次触发,则会拦挡不执行

const throttle = (func, timeout) => {
  let timer = null;
  return function (...args) {if (!timer) {timer = setTimeout(() => {
        timer = null;
        func.apply(this, args);
      }, timeout);
    }
  }
}
退出移动版