Значение и определение замыканий

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

Они позволяют присоединять переменные к контексту выполнения. Переменные в замыканиях могут помочь вам сохранить состояние, которое вы сможете использовать позже. Они обеспечивают инкапсуляцию данных. Они помогают удалить лишний код. Давайте разберемся на примере:

val() создает локальную переменную с именем xи функцию с именем val2(). Функция val2() — это внутренняя функция, определенная внутри val() и доступная только в теле функции val(). Обратите внимание, что функция val2() не имеет собственных локальных переменных. Однако, поскольку внутренние функции имеют доступ к переменным внешних функций, val2() может получить доступ к переменной x, объявленной в родительской функции, val().

Давайте разберем замыкание еще на одном примере:

function randomFunc(){
  var obj1 = {name:"Hitesh", age:27};

  return function(){
    console.log(obj1.name + " is "+ "awesome"); // Has access to obj1 even when the randomFunc function is executed

  }
}

var initialiseClosure = randomFunc(); // Returns a function

initialiseClosure();


// Output: "Hitesh is awsome"

Функция randomFunc() выполняется и возвращает функцию, когда мы присваиваем ее переменной:

var initialiseClosure = randomFunc();

Возвращенная функция затем выполняется, когда мы вызываем initialiseClosure:

initialiseClosure();

Когда функция randomFunc() запускается, кажется, что возвращаемая функция использует внутри себя переменную obj1:

Поэтому randomFunc() вместо уничтожения значения obj1 после выполнения сохраняет значение в памяти для дальнейшего использования. Это причина. почему возвращаемая функция может использовать переменную, объявленную во внешней области видимости, даже после того, как функция уже выполнена. Эта способность функции сохранять переменную для дальнейшего использования даже после ее выполнения называется замыканием.

Пожалуйста, лайкайте, делитесь, подписывайтесь, чтобы получать больше подобного контента. Я новичок в ведении блога и нуждаюсь в вашей поддержке.