前端JavaScript之手写实现:防抖,节流

防抖:一段时间后执行触发函数,期间再次触发函数则将重新计算时间。

    // 防抖
    function debounce(fn) {
    
    
        let timeout = null;
        return function () {
    
    
            clearTimeout(timeout);
            setTimeout(function () {
    
    
                fn.apply(this, arguments);
            }, 500);
        }
    }

节流:一段时间后执行触发函数,期间无论触发多少次都不执行,直至完成该次触发函数。

    // 节流
    function throttle(fn) {
    
    
        let flag = null;
        return function () {
    
    
            if (flag) return;
            setTimeout(function () {
    
    
                fn.apply(this, arguments);
                flag = null;
            }, 500)
        }
    }

猜你喜欢

转载自blog.csdn.net/xiaorunye/article/details/130037710