debounce.js

  1. /**
  2. * @description 函数防抖
  3. * @param fn
  4. * @param delay 延迟时间 默认500ms
  5. * @return {Function} 返回防抖后的函数
  6. */
  7. const debounce = (fn, delay = 500) => {
  8. let timeout = null;
  9. return function (...args) {
  10. if (timeout) clearTimeout(timeout);
  11. timeout = setTimeout(() => {
  12. timeout = null;
  13. fn.apply(this, args);
  14. }, delay);
  15. };
  16. };
  17. export default debounce;