先说一下我的理解 防抖(debounce) 先判断,后执行,没有操作某时间后执行
function debounce(fn, time) {
let timeout;
return function() {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(() => {
fn();
}, time);
};
}
节流(throttle) 先执行,再判断。先执行一次,某时间内,操作无效,某时间后,可以执行
function throttle(fn, time = 250) {
let preTime = 0;
return () => {
let context = this;
let args = arguments;
let now = Date.now();
if (!preTime || now >= preTime + time) {
preTime = now;
fn.apply(context, args);
}
};
}
评论
使用 GitHub 账号登录后即可评论