## Notes A `closure` is a function that retains access to its outer function's variables. It "remembers" the environment in which it was created. ```javascript function outer() { let outerVar = "I'm in the outer scope"; function inner() { console.log(outerVar); outerVar = "Updated"; } return inner; } const closure = outer(); closure(); // I'm in the oute rscope closure(); // Updated ``` They rely on [[Lexical Scope in JavaScript]] ## References - [[JavaScript Study MOC]] - [Closure in JavaScript - Geeks for Geeks](https://www.geeksforgeeks.org/javascript/closure-in-javascript/)