Wanted to share here, the simplest explanation that I have ever seen on the web, for the famous Closures topic. (Credits : roadmap.sh)
A closure is a function that has access to its outer function scope even after the outer function has returned. This means a closure can remember and access variables and arguments of its outer function even after the function has finished.
function outer() {
const name = 'Roadmap';
function inner() {
console.log(name);
}
return inner;
}
const closure = outer();
closure(); // Roadmap
In the above example, the inner function has access to the name variable of the outer function even after the outer function has returned. Therefore, the inner function forms a closure.
Top comments (2)
Unfortunately, this is not correct. A closure is not a function, and ALL functions have the ability to access variables in the lexical scope in which they were defined.
Misconceptions About Closures
Jon Randy ποΈ γ» Sep 27 '23
Thanks for your reply. I ll go through this and edit my post :)