防抖&节流

防抖

function debounce(callback,time){

            let timer;
            return function(){
                clearTimeout(timer);
                timer=setTimeout(()=>{
                    callback.apply(this)
                },time);
            }
        }
防抖策略debounce)是当事件被触发后,延迟 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。
 
 
节流
function throttle(callback,time){
            let flag=false;
            return function(){
                if(flag)return;
                flag=true;
                setTimeout(()=>{
                    callback.apply(this);
                    flag=false
                },time)
            }
        }
节流策略throttle),顾名思义,可以减少一段时间内事件的触发频率。
 
 
callback.apply(this)里this的指向:
因为箭头函数的this指向是指向函数所在的作用域,而通过apply改变this指向为使用该函数的事件对象
posted @ 2022-03-08 19:19  永远老年  阅读(69)  评论(0)    收藏  举报