Рубрики
Без рубрики

Закрытие в JavaScript.

Закрытие в JavaScript является одним из многих вопросов, обычно задаваемых в интервью JavaScript …. Помечено с начинающими, JavaScript, Tutorial, WebDev.

Закрытие в JavaScript является одним из многих вопросов, обычно задаваемых в интервью JavaScript.

Что такое закрытие?

Всякий раз, когда создается функция, она образует закрытие с прицелом внешних функций. Думайте об этом закрытии как о пакете Все переменные объема внешней функции.

Давайте поймем это с примером.

  function createAdder(firstNum) {

    return function (secondNum) {   //The closure function
      return firstNum + secondNum;
    };

  }

  let addOne = createAdder(1);

  console.log(addOne(10)); // 11
  console.log(addOne(2)); // 3

Давайте поймем, что происходит в приведенном выше коде.

  • Сначала мы определяем функцию Createadder, которая принимает FirstNum как параметр.

  • Затем мы возвращаем анонимную функцию, которая принимает Secondnum как параметр.

  • Теперь мы объявляем добавление переменная, с вызовом функции CreateDder, с FirstNum Значение параметра составляет 1.

      // so now the value of addOne should be -

      addOne = function (secondNum) {   //The closure function
                 return firstNum + secondNum;
               };
  • Итак, когда мы звоним добавление (10) . Как это добавление Получите значение FirstNum ? Это из -за закрытие .

  • Таким образом, когда создается анонимная функция (возвращаемая функция). Он ищет родительские переменные. Он находит FirstNum переменная со значением 1 и образует закрытие с ним (сохраняет переменную), чтобы она могла получить доступ к переменной FirstNum позже.

  • Таким образом, функция добавления (10) возвращает 11. Потому что у него уже есть FirstNum Значение как 1.

Теперь, я думаю, вы понимаете закрытие, давайте посмотрим на практическое пример того, где мы можем использовать закрытие.

В приведенном выше примере UpdateClickCount Переменная присваивается iife (немедленно вызванное выражение функции). Итак, IIFE вызывает себя и возвращает анонимную функцию, которая, наконец, назначена UpdateClickCount .

Теперь эта анонимная функция образует закрытие с родительской функцией, так что она имеет доступ к переменным родительской функции, т. Е. счетчик и P Анкет

Когда мы нажимаем, он вызывает UpdateClickCount Что ссылается на анонимную функцию, увеличивает счетчик и обновляет текстовый контент P Анкет

Ну, это с моей стороны. До скорого 😁

Оригинал: “https://dev.to/abhishekjain35/closures-in-javascript-2338”