Что такое функция-декоратор в JavaScript?
Функция-обёртка, которая расширяет поведение другой функции без изменения её кода.
function debounce(fn, delay) {
let timer;
return function(...args) {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, args), delay);
};
}
function throttle(fn, limit) {
let lastCall = 0;
return function(...args) {
const now = Date.now();
if (now - lastCall >= limit) {
lastCall = now;
return fn.apply(this, args);
}
};
}
Типичные декораторы: debounce, throttle, memoize, once, retry, delay, log.