Замыкания в JavaScript

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

1 мин
Автор PINTA IT
Замыкания в 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

Похожие публикации