Замыкания в JavaScript

Замыкание в JavaScript это комбинация функции и лексического окружения, в котором она была определена. Позволяет ей обращаться к переменным

Замыкания в JavaScript

Замыкание в JavaScript  это комбинация функции и лексического окружения, в котором она была определена. Это позволяет ей обращаться к переменным и функциям этого лексического окружения в дальнейшем.

В следующем примере мы определяем функцию makeCounter(), которая фактически является фабричной функцией. При вызове она возвращает дочернюю функцию, которая имеет доступ к лексическому окружению внешней функции, то-есть функции makeCounter(). Таким образом, возвращаемая функция запоминает переменную counter и в последующем изменяет ее значение.

function makeCounter(initial = 0) {
   let counter = initial;

   return function() {
     return counter += 1;
   }
 }

 const counterA = makeCounter(0);

 console.log(counterA()); // 1
 console.log(counterA()); // 2

 const counterB = makeCounter(100);

 console.log(counterB()); // 101
 console.log(counterB()); // 102

Share Tweet Send
0 Комментарии
Загрузка...
You've successfully subscribed to Pinta IT 🍺
Great! Next, complete checkout for full access to Pinta IT 🍺
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.