По мере изучения javascript вы сталкиваетесь с концепцией закрытия. К сожалению для меня, это произошло в результате прекрасного процесса обучения, который вы проходите во время собеседования. Поэтому я пишу этот блог в надежде улучшить свое понимание темы и, надеюсь, понимание моих ревностных читателей.
Что такое закрытие?
Замыкание в javascript - это когда функции объединяются внутри другой функции со ссылками на ее окружающее состояние, как показано ниже.
На первый взгляд, это привело меня в замешательство не потому, что я впервые увидел вложенные функции, а потому, что с первого взгляда я подумал, что, как только функция будет выполнена, она вернет функцию, но переменная «имя» перестанет существовать, но я выполняю кода это было не так.
Это волшебство замыкания, поскольку оно связывает вместе функции со ссылками на его окружающее состояние, что означает, что оно сохраняет значение и ссылку на переменную «имя». Это пространство, в котором все функции объединены вместе, называется лексическим окружением, в данном случае оно относится ко всему телу функции function1 ().
Я сразу же задумался о силе замыканий, и мои исследования привели меня к более практическому примеру, так как это функция сумматора.
Это широко известный в Интернете пример, но он служит хорошей базой для понимания практического подхода. Еще одна функция - это функция, изменяющая цвет фона вашего веб-сайта.
Я сделал образец этого кода на JSfiddle по этой ссылке.
Способ увидеть такое закрытие во многом похож на план создания функций с аналогичной целью.
Замыкания также позволяют нам имитировать частные методы.
Это называется модульным шаблоном в Javascript, и если вы внимательно присмотритесь, он напоминает концепцию классов во многих других языках программирования.