编辑代码

// 节流: 一定时间只执行一次
function throttle(fn, time) {
    let flag = true
    return function (...args) {
        if (flag) {
            flag = false
            setTimeout(() => {
                flag = true
                fn.apply(this, args)
            }, time)
        }
    }
}

// 防抖:一定时间内最后一个操作生效
function debounce(fn, time) {
    let timer = null
    return function (...args) {
        if (timer) clearTimeout(timer)
        timer = setTimeout(() => {
            fn.apply(this, args)
        }, time)
    }
}