SOURCE

function debounce(fn, delay) {
    let timeout = null;

    return function() {
        const ctx = this;
        const args = arguments;

        if (timeout) {
            clearTimeout(timeout);
        }

        timeout = setTimeout(() => {
            fn.apply(ctx, args);
        }, delay);
    }
}

function k() {
    console.log(1);
}

var delayedK = debounce(k, 1000);

delayedK();
delayedK();
delayedK();
delayedK();
delayedK();
delayedK();
delayedK();
delayedK();
console 命令行工具 X clear

                    
>
console