Области видимости и замыкания в Javascript

Со всеми этими функциями, нам необходимо следить за областью видимости! Какие переменные где определены? Кто имеет к ним доступ? Что за загадочная переменная this, которая видимо воплощает все странное и загадочное, касающееся области видимости в Javascript?

Все эти области (и использование замыканий) важны, потому что функции в JS могут быть вызваны в разное время и из разных участков кода, особенно если они связаны с событиями (где они вызываются в виде коллбэков - которые вы уже видели, но мы рассмотрим их подробнее в следующем уроке).

Пункты для размышления

  • Чему равна this? (непростой вопрос...)
  • Как поместить переменную в какую-либо область видимости?
  • Зачем определять переменную that?
  • Почему нехорошо изменять или ссылаться на переменные вне вашей области?
  • Почему "приватные" переменные на самом деле не совсем "приватные"?
  • Функции всегда должны возвращать то же самое значение... или.. ?
  • Как способ вызова функции (в виде функции, метода...) оказывает влияние на область видимости (и this)?

Ваши задания

  1. Прочтите Что вам надо знать об областях видимости в Javascript от Smashing Magazine
  2. Прочтите о Замыканиях в Javascript от learn.jquery.com
  3. Прочтите ответы на SO по вопросу "Как работают замыкания в Javascript?" для лучшего понимания нюансов.
  4. Прочтите о this в Javascript
  5. Прочтите о методах Javascript apply, call и bind
  6. Прочтите о Function.Prototype.Bind для глубокого понимания 'bind'. Возможно, вам придется вернуться к этому материалу попозже из-за его сложности.

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

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

Поделиться уроком: