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

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

Замыкание в javascript - это когда функции объединяются внутри другой функции со ссылками на ее окружающее состояние, как показано ниже.

На первый взгляд, это привело меня в замешательство не потому, что я впервые увидел вложенные функции, а потому, что с первого взгляда я подумал, что, как только функция будет выполнена, она вернет функцию, но переменная «имя» перестанет существовать, но я выполняю кода это было не так.

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

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

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

Я сделал образец этого кода на JSfiddle по этой ссылке.

Способ увидеть такое закрытие во многом похож на план создания функций с аналогичной целью.

Замыкания также позволяют нам имитировать частные методы.

Это называется модульным шаблоном в Javascript, и если вы внимательно присмотритесь, он напоминает концепцию классов во многих других языках программирования.

Дополнительные ресурсы о закрытии