SOURCE

/*
    @param fn 要节流和防抖的函数
    @param delay 规定的时间
 */

// 函数防抖
function debounce(fn, delay) {
    // 记录上一次的延时时间
    var timer = null;
    return function() {
        // 清除上一次的延时
        clearTimeout(timer);
        timer = setTimeout(function() {
            // 改变this的指向
            fn.apply(this);
        }, delay);
    }
}

// 函数节流
function throttle(fn, delay) {
    // 记录上一次触发的时间
    var lastTime = 0;
    return function() {
        // 记录函数当前触发的时间
        var nowTime = Date.now();
        if (nowTime - lastTime > delay) {
            // 改变this指向
            fn.call(this);
            // 同步时间
            lastTime = nowTime;
        }
    }
}
console 命令行工具 X clear

                    
>
console