JavaScript Затворы
Переменные JavaScript могут быть локальными или глобальными переменными.
Частные переменные могут быть использованы закрытия.
Глобальные переменные
Функция может получить доступ к переменным, определенным внутренними функциями, такими как ?:
Функция также может быть доступна за пределами функции определены переменные, такие как:
Примером назад, является глобальной переменной.
В веб-страницы принадлежат к глобальной переменной объекта окна.
Глобальные переменные могут быть использованы во всех сценариях на странице.
В первую очередь, а является локальной переменной.
Локальные переменные могут быть использованы только для определения своей внутренней функции. Для другой функции или кода сценария не доступен.
Даже глобальные и локальные переменные с тем же именем, они также две разные переменные. Изменить один, это не повлияет на значение другого.
Если вы не объявите переменную с помощью ключевого слова VAR, то это глобальная переменная, даже если она определяется в пределах функции. |
Переменная жизненного цикла
Область видимости глобальных переменных являются глобальными, то есть, по всей программе JavaScript, глобальные переменные везде.
В переменной, объявленной внутри функции, работают только внутри функции. Эти переменные являются локальными, локальный характер; параметр функции локализован, только внутри функции работы.
Счетчик Дилемма
Если вы хотите представить в некоторых численных статистических данных, а также счетчики доступны все функции.
Вы можете использовать глобальные переменные, функция устанавливает счетчик увеличивается:
примеров
Функция Add () {
счетчик + = 1;
}
Добавить ();
Добавить ();
Добавить ();
// Счетчик теперь 3
Попробуйте »
Изменение значения счетчика имели место в реализации функции Add ().
Но вопрос, любой скрипт на странице можно изменить счетчик, даже если нет никакого вызова, чтобы добавить функцию ().
Если я объявить функцию внутри счетчика, если не вызвать функцию не будет изменять значение счетчика:
примеров
вар счетчик = 0;
счетчик + = 1;
}
Добавить ();
Добавить ();
Добавить ();
// Намерение на выход 3, но это не произошло, выход 1!
Попробуйте »
Приведенный выше код не будет выходить правильно, каждый раз, когда я звоню, чтобы добавить функцию (), счетчик будет установлен в 1.
JavaScript встроенная функция может решить эту проблему.
JavaScript вложенные функции
Все функции могут получить доступ к глобальным переменным.
В самом деле, в JavaScript, все функции могут получить доступ к ним на полу сферы.
JavaScript поддерживает вложенные функции. Вложенная функция может получить доступ к переменным на функциональном уровне.
В этом примере вложенная функция плюс () может получить доступ к переменной счетчика родительской функции:
примеров
вар счетчик = 0;
Функция плюс () {счетчик + = 1;}
PLUS ();
возврата счетчика;
}
Попробуйте »
Если мы можем получить доступ к плюс функция снаружи (), так что мы можем адресовать затруднительное положение счетчика.
Мы также должны гарантировать , что счетчик = 0 только один раз.
Нам нужно закрыть.
JavaScript Затворы
Помните, что вызовы функций сама по себе делать? Эта функция будет делать?
примеров
вар счетчик = 0;
возвращать функцию () {возвращение счетчик + = 1;}
}) ();
Добавить ();
Добавить ();
Добавить ();
3 // счетчик
Попробуйте »
Примеры аналитических
Добавьте переменную слово указывает возвращаемое значение функции называет себя.
Функция Self-вызова выполняется только один раз. Установка счетчика на ноль. И вернуться к выражению функции.
добавить переменную в зависимости от использования. Большая часть является то, что она может быть доступна в объеме счетчика функционального уровня.
Это называется закрытие JavaScript. Он имеет частную переменную так, чтобы функция становится возможным.
Счетчик, что сфера защиты анонимной функции могут быть изменены только с помощью метода Add.
Затворы доступны на одной области видимости функции переменной внутри функции, даже если функция слой был закрыт. |