JS防抖和节流


JS 防抖和节流

1、防抖

是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次<– 比如生活中的坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车

示例代码:

debounce(fn, delay) {
    let timer = null;
    return function (e) {
        if (timer) {
            clearTimeout(timer);
        }
        timer = setTimeout(() => {
            //解决this指向的问题以及事件对象参数的问题
            //this;用来保存this指向
        	//arguments;用来保存函数中所有的引用的参数
            fn.apply(this, arguments);
        }, delay);
    };
},

2、节流

是指一定的时间内 js 方法只跑一次<– 就像人眨眼睛,一定时间内眨一次眼睛,这是对于函数节流最形象的解释

示例代码

throttle(fn, delay) {
    let timer = null;
    return function () {
        if (timer) {
            return;
        }
        timer = setTimeout(() => {
            fn();
            timer = null;
        }, delay);
    };
},

文章作者: Liu Yuan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liu Yuan !
—— 评论区 ——
  目录