Замыкание — один из столпов JavaScript (наряду с побочной областью действия, согласно Кайлу Симпсону в книге YDKJS), и это абсолютно верно. Большинство руководств по JavaScript просто погружаются в основы JavaScript, такие как значения или переменные, и на самом деле не обсуждают замыкание и область видимости, даже если это основные основы JavaScript. В той мере, в какой они упускаются из виду, объем и замыкание являются предварительными основами JavaScript, «если вообще существует что-либо близкое к этому».

«В этой статье концепция замыкания сделана максимально краткой и понятной как для тех, кто знаком с JavaScript, так и для новичков, и все это занимает 3 минуты чтения».

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

В не очень техническом определении Closure — это просто действие ссылки на переменную в другой функции в пределах области действия функции. Когда функция объявляется внутри функции, внутренняя функция может ссылаться на переменную, объявленную во внешней функции.

Посмотрите на этот код, здесь формируется замыкание:

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

Закрытие в java-скрипте приводит к ограничению переменных, JavaScript хочет, чтобы вы написали организованный чистый код, это причина рассмотреть закрытие. Не просто присваивать любую переменную где угодно и вызывать ее где угодно. таким образом вы можете стать очень неорганизованным и даже забыть, какая переменная принадлежит какой функции.

рассмотрите код ниже.

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

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

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

Основные выводы.

  • Замыкание — один из столпов JavaScript.
  • Каждый раз, когда объявляется функция, создается замыкание.
  • Закрытие ограничено областью действия, поэтому оно поощряет область видимости блока или ограничение переменных.
  • После прочтения закрытия подумайте о том, чтобы прочитать объем.