JS基礎知識之實現一個簡單防抖和節流函數

JS基礎知識之實現一個簡單防抖和節流函數

防抖:

如果在定時器的時間範圍內再次觸發,則重新計時。

const debounce = (fn, delay) => {
let timer = null;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, args);
}, delay);
};
};

節流:

如果在定時器的時間範圍內再次觸發,則不予理睬,等當前定時器完成,才能啟動下一個定時器。

const throttle = (fn, delay = 500) => {
let flag = true;
return (...args) => {
if (!flag) return;
flag = false;
setTimeout(() => {
fn.apply(this, args);
flag = true;
}, delay);
};
};


分享到:


相關文章: