SOURCE

console 命令行工具 X clear

                    
>
console
// 防抖
function debounce(fn, time) {
    let timer = null
    return function (...args) {
        let context = this
        timer && clearTimeout(timer)
        timer = setTimeout(() => {
            fn.apply(context, args)
        }, time)
    }
}
// 节流
function throttle(fn, time) {
    let timer = null
    return function (...args) {
        let context = this
        if (!timer) {
            timer = setTimeout(() => {
                fn.apply(context, args)
                timer = null
            }, time)
        }
    }
}


// demo
function demo(name) {
     console.log(`${name}:${Math.random()}`)
}


let debounceFn = debounce(demo, 1000)
let throttleFn = throttle(demo, 1000)


document.querySelector('#debounce').addEventListener('click', () => {
    debounceFn('debounce')
})
document.querySelector('#throttle').addEventListener('click', () => {
    throttleFn('throttle')
})
<button id="debounce">debounce</button>
<button id="throttle">throttle</button>