# Замыкания в JavaScript

Давайте теперь изучим понятие замыкание (англ. closure). На самом деле вы уже знакомы с этим понятием, осталось только узнать правильную терминологию.

Итак, замыкание - это функция вместе со всеми внешними переменными, которые ей доступны. Или, другими словами, замыкание - это функция вместе со своим лексическим окружением.

В JavaScript чаще всего, говоря "замыкание функции", имеют ввиду не саму эту функцию, а именно ее внешние переменные. Если же какая-то функция получает переменную из своего лексического окружения, то говорят "переменная берется из замыкания".

Вспомним код, который мы сделали в предыдущем уроке:

`function test() { let num = 1; return function() { console.log(num); } } let func = test(); func(); // выведет 1`

В данном случае и можно сказать, что функция `func` получает значение переменной `num` из замыкания. Также можно сказать, что функция `func` хранит значение переменной `num` в замыкании.

←→
↑
en ru