防抖&节流
防抖
function debounce(callback,time){
let timer;
return function(){
clearTimeout(timer);
timer=setTimeout(()=>{
callback.apply(this)
},time);
}
}
节流
function throttle(callback,time){
let flag=false;
return function(){
if(flag)return;
flag=true;
setTimeout(()=>{
callback.apply(this);
flag=false
},time)
}
}
callback.apply(this)里this的指向:
因为箭头函数的this指向是指向函数所在的作用域,而通过apply改变this指向为使用该函数的事件对象