js函数节流防抖

//防抖(debounce):连续的触发中只有最后一次才会执行函数
function debounce (func, wait) {
    let timeout;
    return function () {
        if (timeout) clearTimeout(timeout); 
        timeout = setTimeout(() => {
            func.apply(this, arguments);
        }, wait);
    };
}
//节流(throttle):连续触发的事件n毫秒内只执行1次
function throttle (func, wait) {
    let prev = 0;
    return function () {
        const now = new Date();
        if (now - prev > wait) {
            func.apply(this, arguments);
            prev = now;
        }
    };
}

注:时间对象可以做减法


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。