防抖截流函数

74 阅读1分钟

防抖只执行最后一次函数

function fandou(fn,delay){
    let timer=null;
    return function(){
        let context=this,args=arguments;
        clearTimeout(timer);
        timer=setTimeout(()=>{
            fn.apply(context,args);
        },delay)
    }
}

截流只执行一次函数

function jieliu(fn,delay){
    let timer=null;
    return function(){
        let context=this,args=arguments;
        if(!timer){
            timer=setTimeout(()=>{
                fn.apply(context,args);
                timer=null;
            },delay)
        }
    }
}