Performance Optimization Techniques

What performance pattern does this code implement?
const memoizedFibonacci = (function() {
  const cache = {};

  return function fibonacci(n) {
    if (n in cache) {
      return cache[n];
    }
    if (n <= 1) {
      return n;
    }
    const result = fibonacci(n - 1) + fibonacci(n - 2);
    cache[n] = result;
    return result;
  };
})();
Next Question (8/40)