Кстати, это часть огромной коллекции заметок и карточек под названием CodingNotes. Проверьте это здесь https://www.codingnotes.io/.

Сегодня CodingNotes также участвует в Product Hunt, поэтому проголосуйте за CodingNotes — заметки и карточки для различных языков программирования (producthunt.com).

Глобальные переменные можно сделать локальными с помощью замыканий.

Локальные и глобальные переменные

  • глобальные переменные определяются вне функций, они принадлежат странице и могут использоваться и изменяться всеми остальными объектами на странице.
  • локальные переменные определяются внутри функций, они принадлежат функции и могут использоваться и изменяться только внутри функции, они скрыты от других вещей
  • у вас может быть одно и то же имя переменной для локальной и глобальной переменных, они все равно разные переменные и работают независимо
  • переменные, созданные без ключевого слова объявления (var, let, const), всегда являются глобальными (даже если они созданы внутри функции)
  • глобальные переменные живут до тех пор, пока страница не будет удалена, например. при переходе на другую страницу или закрытии окна
  • локальные переменные создаются при вызове функции и удаляются после ее завершения

Закрытие

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

Полный пример

const increment = (function () {
  let changer = 0;
  return function () {changer += 2; return changer}
})();
increment()
increment() 
//4 as Output
  • increment становится функцией, потому что самовызывающаяся функция возвращает функциональное выражение
  • increment теперь может получить доступ к counter в родительской области, что означает, что только increment может изменить функцию (это закрытие)

Зачем использовать замыкания?

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

Надеюсь, вы чему-то научились!

Кстати, это часть огромной коллекции заметок и карточек под названием CodingNotes. Проверьте это здесь https://www.codingnotes.io/.

Сегодня CodingNotes также участвует в Product Hunt, поэтому проголосуйте за CodingNotes — заметки и карточки для различных языков программирования (producthunt.com).