节流
一般用于点击事件,防止短时间点击过多次
const throttle = (f,time) =>{ //声明一个函数,有俩个参数,如果需要this可以设置为第三个参数
let timer = null //定义一个变量为空
return (...arguments)=>{ //返回一个函数,参数为arguments,参数是为了有需要的时候传参
if(timer) {return} //判断 timer 是否为真,如果为真返回空,如果不为真,执行下面函数
f.call(undefind,...arguments) //执行 f 函数,用call方法指定this(上面第三参数)和传参
timer = setTimeout(()=>{ //赋值timer 为定时器
timer=null // 计时器计时完成后,重新赋值为null
},time) // time是上面函数穿的参数时间
}
}
防抖
一般用于防止频繁拖动操作,等拖动停止的时候才触发效果
const debounce = (f,time) =>{ //声明一个函数,有俩个参数,如果需要this可以设置为第三个参数
let timer = null //定义一个变量为空
return (...arguments)=>{ //返回一个函数,参数为arguments,参数是为了有需要的时候传参
if(timer !== null) { // 当timer 不为空的时候,执行下面操作
clearTimeout(timer) // 取消定时器
}
timer = setTimeout(()=>{ // 赋值timer 为定时器
f,call(undefined,...arguments) //执行 f 函数,用call方法指定this(上面第三参数)和传参
timer = null //计时器计时完成后,重新赋值为null
},time) //time是上面函数穿的参数时间
}
}