防抖
function db(fn, delay) {
var timer = null
return function () {
clearTimeout(timer)
timer = setTimeout(() => {
fn.apply(this, arguments)
}, delay)
}
}
function a() {
console.log('2');
}
const as = db(a, 1000)
as()
as()
as()
as()
as()
setTimeout(() => {
as()
}, 1100);
setTimeout(() => {
as()
}, 1100);
节流
function th(fn,delay){
let timer = null
return function(){
if(!timer){
timer = setTimeout(()=>{
fn.apply(this,arguments)
timer = null
},delay)
}
}
}
function a(){
console.log('3');
}
const as = th(a,1000)
as()
as()
as()
setTimeout(()=>{
as()
},1000)
as()