Закрытия:

Замыкание — это комбинация функции, связанной вместе (заключенной) относительно ее окружающего состояния. Другими словами, замыкание дает вам доступ к области действия внешней функции из внутренней функции. В javascript замыкания создаются каждый раз, когда функция создается во время создания функции.

Пример:

// Closures
const secureBooking = function () {
let passengerCount = 0;
return function () {
passengerCount++;
console.log(`${passengerCount} passengers`);
};
};
const booker = secureBooking();

booker();
booker();
booker();

В приведенном выше примере функция secureBooking имеет начальное количество пассажиров, равное 0, затем она возвращает функцию, которая увеличивает количество пассажиров на 1 при каждом вызове функции, а затем secureBooking функция хранится в функции booker.

После первого вызова функции booker на выходе будет 1 пассажир, если она будет вызвана во второй раз, на выходе будет 2 пассажирато естьпосле вызова функции booker переменная passenger сохраняется в функции booker, а функция приращения также вызывается путем вызова функции функция бронирования. Проще говоря, функция booker хранит переменную и функцию из secureBooking.

Спасибо!!!

Хорошего дня!!!