防抖&节流


防抖

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指向为使用该函数的事件对象