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 :)