Эй !!!!
Изучение JS и каждый раз, когда что-то приходит Закрытие, Аааа, я знаю, что слушать внимательнее - это легко и приятно, но изучать его, это немного скучно и немного сонно, Но я просто хочу сказать, что это очень важно!!!!!. Так что просто начните путь к завершению.

Итак, давайте начнем с очень простого примера ... Подождите, подождите !!!!! 😮
Сначала поговорим о теории 👹—

Замыкание - это свойство (все еще запутанное…) в JS, которое позволяет нам использовать переменные родительской области видимости после того, как выполнение родительского элемента завершено !!!! 😜.

Подожди, что… Это меня действительно смутило 😢… ..

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

Все еще непонятно? 😥
Давайте рассмотрим пример🤞

function addFunction(x){
return function(y) {
return x + y;
}}
let a = addFunction(5)(10); // result will be 15

Хорошо, давайте объясним это !!!

Сначала мы создали функцию (не используя ES6, но я предпочитаю ее) addFunction
, которая возвращает новую функцию (😮) …… .. которая, наконец, возвращает x + y;
Но давайте посмотрим на вызов функции.

Здесь мы объявили переменную a (очень плохо выбирают имя🥺), которая дважды вызывает addFunction (не путайте с двойным вызовом функции) в функции, которая возвращает что-то вроде этого 👐.

dummy = addFunction(5);
// Above line will return something like this.
dummy = ƒ(y) {
return x + y;
}

Здесь мы использовали dummy, чтобы увидеть вызов первой функции, поэтому, когда мы вызываем функцию добавления с параметром 5, она возвращает функцию, подобную приведенной выше🤷‍♀.

Теперь эта функция используется для повторного вызова addFunction с параметром 10😋

Которая по-прежнему содержит значение x в области видимости (это сила закрытия)

Теперь, когда мы вызываем функцию, она возвращает что-то вроде этого.

var sum = dummy(10);
console.log(sum) // 15

Спасибо, что прочитали 🙌

Хлопать в ладоши! если это было полезно для вас 👋