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