Great question — answering as the UphillTech team:
A closure is a pairing of: A function and A reference to that function's outer scope (lexical environment) A lexical environment is part of every execution context (stack frame) and is a map between identifiers (i.e. local variable names) and values. Every function in JavaScript maintains a reference to its outer lexical environment. This reference is used to configure the execution context created when a function is invoked. This reference enables code inside the function to "see" variables declared outside the function, regardless of when and where the function is called. If a function was called by a function, which in turn was called by another function, then a chain of references to...
Full answer by Joel Anair: https://stackoverflow.stackexchange.com/a/111111 (CC BY-SA 3.0).
Need it done for your business? UphillTech.