手写防抖节流

# 手写防抖节流

# 防抖

所谓防抖就是在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

function debounce(func, time) {
  let timer;
  return function() {
    clearTimeout(timer);
    let args = arguments;
    timer = setTimeout(() => {
      func.apply(this, args);
    }, time)
  }
}

# 节流

所谓节流就是规定在一个单位时间内,只能触发一次函数。如果这个单位时间内多次触发函数,只有一次生效。

function throttle(func, time) {
  let t1 = 0;
  return function() {
    let t2 = new Data();
    if (t2 - t1 > time) {
      func.apply(this, arguments);
      t1 = t2;
    }
  }
}
LOSER
米津玄師