Загрузка…
Загрузка…
Мемоизация — кэширование результата функции по аргументам: при повторном вызове с тем же входом возвращаем сохранённое значение вместо пересчёта.
Имеет смысл для чистых функций с дорогими вычислениями.
function memoize(fn) {
const cache = new Map();
return function (...args) {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn.apply(this, args);
cache.set(key, result);
return result;
};
}
const fib = memoize(function f(n) {
if (n < 2) return n;
return f(n - 1) + f(n - 2);
});В React: useMemo / React.memo — родственные идеи (кэш вычисления / пропагации рендера), но не классическая memoize-функция.
На собеседовании: определение → пример → когда нельзя применять.
