Closures aren't magic—they're simply JavaScript's way of keeping data alive when a function still needs it.


Every JavaScript developer has heard statements like:


"A closure is a function that remembers variables from its outer scope."
"The inner function closes over variables."
"Closures preserve the lexical environment."


But...


How does a...