A closure is a feature of the JavaScript language that allows a function to access variables from outside its scope. Closures are created when a function is declared and can be used to store data and access variables from the parent scope.
A closure is created when a function is declared and can be used to store data and access variables from the parent scope. Closures are useful for creating private variables, as they allow functions to access variables from outside their scope.
For example, consider the following code:
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
In this example, the createCounter() function creates a closure that stores the count variable. The returned function can access the count variable from the parent scope, even though it is declared outside of the function’s scope.
Closures are also useful for creating private variables. For example, consider the following code:
function createCounter() { let count = 0; return { increment() { count++; }, getCount() { return count; } } }
const counter = createCounter(); counter.increment(); console.log(counter.getCount()); // 1
In this example, the createCounter() function creates a closure that stores the count variable. The returned object has two methods, increment() and getCount(), which can access the count variable from the parent scope, even though it is declared outside of the object’s scope. This allows us to create a private variable that can only be accessed by the object’s methods.