Просто блог, і нічого більше

Що таке замикання в JavaScript

Сьогодні коротко дам відповідь на доволі популярне запитання на співбесідах на позицію JS/Frontend розробника, а саме, “Що таке замикання в JavaScript?”.

Приклад із поясненням замкнення

let outer = () => {
  const Number = 20;
  let inner = () => {
    console.log("The number is " + Number)
  };
  return inner()
};
outer()

В даному коді оголошена функція outer(), у її локальній області видимості константа Number, а також функція inner(), що виводить в консоль надпис “The number is Number”. В зовнішній функції ми повертаємо значення inner() , і, запустивши її, бачимо, що жодної проблеми не виникло, і внутрішня спокійно використала Number із зовнішньої області видимості. Отож, функція inner “замкнула” в собі змінну Number.

Отже, замкнення – це функція, яка зберігає в собі оточення, де вона задана(разом із інформацією в ньому).