/**
 * 防抖方法。实例化一个Debounce对象,然后调用run方法执行防抖函数。
 */
class Debounce {
    constructor(time) {
        //执行间隔
        this.timeout = time;
        //计时器
        this.timer = null;
    }
    //等待时间结束后执行方法
    run(func, ...args) {
        if (this.timer) {
            clearTimeout(this.timer);
            this.timer = null;
        }
        if (this.timer == null) {
            this.timer = setTimeout(() => {
                func(...args);
                this.timer = null;
            }, this.timeout);
        }
    }
}