Back to search

Recursion, memoization, currying, debounce, and throttle in JavaScript

These patterns solve different problems: recursion for self-referential logic, memoization for caching, currying for partial application, and debounce or throttle for rate control.

JavaScript Hard Theory

Recursion, memoization, currying, debounce, and throttle in JavaScript

These patterns solve different problems: recursion for self-referential logic, memoization for caching, currying for partial application, and debounce or throttle for rate control.

  • Memoization trades memory for repeated-speed gains
  • Debounce waits for quiet time
  • Throttle limits call frequency

Recursion, memoization, currying, debounce, and throttle in JavaScript