Yes. Each returned function closes over the accumulated arguments. The closure keeps the arguments alive between calls. Without closures, currying would not work.
Does currying use closures in JavaScript?
More FAQs in What Is Currying in JavaScript?
Transforming a function with multiple arguments into a sequence of single-argument functions: f(a, b, c) becomes f(a)(b)(c). Each call returns a function that takes the next argument.
Return a function that collects arguments. If enough arguments (args.length >= fn.length), call the original. Otherwise, return a new function that collects more. Use recursion.
Currying transforms into one-argument-at-a-time: f(a)(b)(c). Partial application presets some arguments and returns a function for the rest: f'(b, c) with a preset. Currying is one-at-a-time; partial is some-now.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.