1、防抖
1.1、条件
1、高频
2、耗时(比如console不算)
3、以最后一次调用为准
刷到个神评论,回城是防抖,技能cd是节流
1.2、手写
传参版本
function debounce(fn,delay){
let timer
return function(...args){//返回函数必须是普通函数,不能是箭头函数,箭头函数没有this
timer && clearTimeout(timer)
timer = setTimeout(()=>{//不能是普通函数,箭头函数没有this才能用的是外面的this
// apply: 作用就是改变方法内部this的指向, 并能将参数传递给该方法, 最后立即执行这个函数
fn.apply(this,args)//这个this就是外面的this
},delay)
}
}
1.3、应用
瀑布流调整窗口大小