[关闭]
@panhonhang 2019-12-13T20:25:16.000000Z 字数 398 阅读 431

节流与防抖函数

手撕代码


什么是节流?

函数节流所做的工作就是每隔一段时间去执行一次原本需要无时不刻地在执行的函数(比如缩放,滚动等)

let throttle = function(fn,timer){
    let flag = true;
    return function(){
        if(!flag) return;
        flag = false;
        settimeout(()=>{
            fn();
            flag = true;
        },timer)
    }
}

什么是防抖?

函数防抖所做的工作是优化高频率执行js代码的一种手段,在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。

let debounce = function (fn, delay) {
    var flag; // 维护一个 flag
    return function () {
        if (flag) {
            clearTimeout(flag);
        }
        flag = setTimeout(function () {
            fn();
        }, delay);
    };
}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注