防抖
function debounce(fn,wait){
let time=null;
return function(...args){
if(time){
clearTimeout(time);
}
time=setTimeout(()=>{
fn(...args);
},wait);
}
}
节流
使用时间戳实现
function throttle1(fn,wait){
let p=0;
return function(...args){
let now = Date.now();
if(now-p>wait){
fn(...args);
p=now;
}
}
}
使用定时器实现
function throttle2(fn,wait){
let time=null;
return function(...args){
if(!time){
time=setTimeout(()=>{
fn(...args);
time=null;
},wait)
}
}
}