防抖函数–debounce

直接使用 lodash 当然是比较便利的。但有时候,只是想使用那么一两个函数,为此引入 lodash 不太划算。比如,在写小程序的时候我需要用防抖函数。这种情况下,最好自己写一个。

自写 debounce 当然不会像 lodash 考虑得那么详尽。只要围绕着时延,写一个简单的满足需求的就可以了。

// 防抖
export function debounce(fn, time = 300) {
  let timeout = null
  function temp(...rest) {
    let context = this
    clearTimeout(timeout)
    timeout = setTimeout(fn.bind(context, ...rest), time)
  }

  return temp
}