触发高频时间后n秒内函数只会执行一次,如果n秒内高频时间再次触发,则重新计算时间。

    1. const debounce = (fn, time) => {
    2. let timeout = null;
    3. return function() {
    4. clearTimeout(timeout)
    5. timeout = setTimeout(() => {
    6. fn.apply(this, arguments);
    7. }, time);
    8. }
    9. };

    防抖常应用于用户进行搜索输入节约请求资源,window触发resize事件时进行防抖只触发一次