/**
* 节流 第一次立即执行,然后隔wait毫秒后可再次执行callback
* @param {Object} callback
* @param {Object} wait
*/
throttle(callback, wait){
let timer = 0;
return () => {
let now = new Date().getTime();
if (now - timer > wait) { // 对比时间差,如果大于时间差就可执行
callback.call(this,...arguments);;
timer = now; // 再把上次时间替换为本次时间
}
}
},
/**
* 防抖 调用该函数delay毫秒后执行callback,若在执行callback前再次调用该函数,则delay重新计时
* @param {Object} callback
* @param {Object} delay
*/
debounce(callback,delay){
let timer = null;
return () => {
timer && clearTimeout(timer);
timer = setTimeout(callback, delay);
}
}
防抖和节流
最新推荐文章于 2023-10-16 16:32:46 发布