SOURCE

//节流
/**
 * 某段时间内,无论触发多少次回调,只会响应第一次回调
 * **/
function throttle(time, cb) {
    //上次操作触发回调的时间
    let last = 0;
    //事件防抖闭包返回
    return (params) => {
        let now = new Date().getTime()
        if (now - last >= time) {
            cb(params)
            //更新上次的操作时间
            last = new Date().getTime()
        }
    }
}
//防抖
/**
 * 某段时间内,无论触发多少次,只响应最后一次回调
 * 
 * **/
function debounce(time, cb) {
    //设置定时器
    let timer = null
    return (params) => {
        //每当事件触发的时候,清理其定时器
        if (timer) clearTimeout(timer)
        //设定新的定时器
        timer = setTimeout(() => cb(params), time)
    }
}
console 命令行工具 X clear

                    
>
console