Closure is nothing but a technique bringing out the variable to the outer scope so that parent scope can also work with the variable from child scope.
function foo(){
let count = 0;
return function(){
return count+=1;
}}
let doo = foo();
console.log(doo());
console.log(doo());
console.log(doo());
console.log(count);
Here count
variable can be mutated from the outer scope.
But count
variable cannot be accessed directly from outside the foo
function.
Top comments (2)
Interesting.
I think it would be more accurate to say that closures "close over" or encapsulate the scope of a variable. They don't bring the value into the outer scope, but instead provide a mechanism to access the encapsulated value. Also, it would help to provide the result of the console logs to get an idea of what it's actually doing.