MediumJavaScript Closures β€”. Imagine a library in JavaScript. | by Raveenanagar | Oct, 2026 | Medium
Sitemap
Raveenanagar

Raveenanagar

Enthusiast Web Developer | JavaScript | HTML | CSS

JavaScript Closures β€”

2 min readOct 6, 2026

--

Imagine a library in JavaScript.

  • πŸ›οΈ Outer function = the library
  • πŸ“– Inner function = a book
  • πŸ” Variable = a secret note inside the library
  • πŸŽ’ Closure = the book carrying the secret note with it

🌟 The Story

Suppose we create a function called outer():

function outer() {
let secret = "Hello JavaScript!";
    function inner() {
console.log(secret);
}
return inner;
}
const myFunction = outer();myFunction();

🧠 What happens?

Step 1: outer() creates the variable secret.

Step 2: Inside it, inner() is created.

Step 3: outer() returns inner.

Step 4: Even though outer() has finished, inner() remembers secret.

Get Raveenanagar’s stories inΒ yourΒ inbox

Join Medium for free to get updates fromΒ thisΒ writer.

So:

outer()
β”‚
β”œβ”€β”€ secret = "Hello JavaScript!"
β”‚
└── inner()
β”‚
└── remembers secret πŸ”

When we call:

myFunction();

the output is:

Hello JavaScript!

πŸŽ’ The Easy Definition

A closure is a function that remembers and can access variables from its outer scope even after the outer function has finished executing.

πŸ”’ A Real-Life Example: Counter

function createCounter() {
let count = 0;
    return function () {
count++;
return count;
};
}
const counter = createCounter();console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

Why does count remember its value?

Because the returned function forms a closure around count.

⭐ Remember It Like This

Outer Function
↓
creates variable
↓
Inner Function
↓
remembers variable
↓
CLOSURE πŸŽ’

One-line exam definition:
Closure = Function + its remembered lexical environment.

Press enter or click to view image in full size

--

--