Большинство из нас, кто хочет научиться замыканию, уже использовали его раньше. Итак, нам не нужно учить замыкание. Вместо этого нам нужно признать закрытие.

Когда функция обращается к переменной/другой функции вне ее, это замыкание? Не волнуйтесь, если это сбивает с толку. Давайте посмотрим на пример

Если мы вызовем функцию app(), мы получим вывод «Роналду — хороший спортсмен». Здесь приложение-функция обращается к переменной игрока, которая находится за его пределами. Итак, это закрытие.

Поскольку мы знаем, что обертывание некоторого кода внутри функции не меняет ее вывод. Давайте обернем некоторый код внутри функции-оболочки.

Функция «приложение» может получить доступ к любой переменной за ее пределами, даже если переменная находится за пределами функции-оболочки. Итак, теперь мы можем определить замыкание.

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

Некоторые ключевые факты, которые необходимо знать

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