# Understanding JavaScript Closures Through Call Stack, Heap Memory & `[[Scopes]]`

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 th…