函数防抖和函数节流的最简单解释

函数防抖:连续触发的事件,只会触发最后一次。每次触发的时候都会清除上一次待触发的。

const debounce = (func, wait) => {
  let timer;

  return (params) => {
    clearTimeout(timer);
    timer = setTimeout(() => {
    func(params);
}, wait); }; };

函数节流:连续触发的事件,会按照一定的频率触发N次。每间隔一定的时间,必然会触发一次。

const throttle = (func, wait) => {
  let timer;

  return (params) => {
    if (timer) {  // timer 存在则不会加入待执行中
      return;
    }

    timer = setTimeout(() => {
      func(params);
      timer = null;  // 间隔一定时间后执行一次,执行完后清空 timer 可再次执行
    }, wait);
  };
};

 

你可能感兴趣的:(函数防抖和函数节流的最简单解释)