防抖 :
指的是 方法出发后一段时间内只执行一次 如果再次触发则清除上一次的计时器 重新计时
// 防抖
const debounce = (fn,wait)=>{
let timer = null //初始化定时器
return (...args)=>{
timer&&clearTimeout(timer)//有则清除
timer = setTimeout(()=>{
fn.apply(this,args)
},wait)
}
}
节流:
指的是 在一段时间内多次触发同一个事件 最终只执行一次
//节流
const throttle = (fn, wait) => {
let flag = true //设置标识
return (...args) => {
if (!flag) { return }
flag = false //改变状态
setTimeout(() => {
fn(args)
flag = true
}, wait)//定时
}
}