Мемоизация — это метод сохранения предыдущих результатов для сокращения времени выполнения функции в обмен на затраты места. Запуск запоминаемой функции с аргументами, с которыми она запускалась ранее, может найти результат вместо того, чтобы вычислять снова и снова. Вот запомненная функция:

const memoization = fn => {
const cache = {};
return function(…args) {
if (cache[args]) {
return cache[args];
}
const result = fn.apply(this, args);
cache[args] = result
return result;
};
};
  1. Мемоизация возьмет на себя функцию (fn).
  2. Он будет хранить объект, называемый кешем, в котором будут храниться предыдущие результаты.
  3. Он вернет функцию, которая принимает все аргументы, используя …args (получая их в виде массива).
  4. Если ключ аргументов найден в объекте, он вернет значение в качестве результата.
  5. В противном случае он вызовет функцию (fn) с .apply, которая принимает два аргумента: то, чему вы хотите присвоить ключевое слово «this», и массив аргументов, поэтому мы используем args.
  6. Затем он сохранит этот результат в объекте кеша с ключом args.
  7. Результат функции присваивается переменной с именем result и возвращается результат.