# Understanding Closures in JavaScript

Closures are a fundamental concept in JavaScript that allow functions to access variables from their outer scope. Here’s an example:
function outerFunction(outerVariable) { return function innerFunction(innerVariable) { console.log(`Outer Variable: ${outerVariable}`) console.log(`Inner Variable: ${innerVariable}`) }}
const newFunction = outerFunction('outside')newFunction('inside')
Closures are particularly useful for creating private variables and functions. For example:
function Counter() { let count = 0 return { increment: () => count++, getCount: () => count, }}
const counter = Counter()counter.increment()console.log(counter.getCount()) // 1
Closures are a powerful tool in JavaScript, enabling encapsulation and modularity.