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

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

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

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

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

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

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

    timer = setTimeout(() => {
      func(params);
      timer = null;  // 间隔必定时间后执行一次,执行完后清空 timer 可再次执行
    }, wait);
  };
};
相关文章
相关标签/搜索