Замыкания
Замыкание — это важный паттерн проектирования в JavaScript, который позволяет организовать защищённую работу с переменными. В следующем примере функция createGreeter()
возвращает анонимную функцию, у которой есть доступ к предоставленному исходной функции аргументу greeting
, содержащему строку Hello
. Ссылка на эту анонимную функцию записывается в переменную sayHello
. После этого, сколько раз бы мы ни вызывали функцию sayHello()
, у неё всегда будет доступ к значению greeting
. При этом доступ к greeting
будет только у анонимной функции, ссылка на которую записана в sayHello
.
Это был очень простой пример. Если же рассмотреть нечто, более близкое к реальному миру, то можно представить себе, например, функцию для подключения к некоему API (назовём её apiConnect()
), которой, при первом её вызове, передаётся ключ доступа к API. Эта функция, в свою очередь, возвращает объект, содержащий несколько методов, которые пользуются переданным apiConnect()
ключом доступа к API. При этом ключ хранится в замыкании и при вызове этих методов упоминать его больше не требуется.
Подробнее про замыкания можно почитать в нашей статье Замыкания в JavaScript для начинающих.