Добавляем...


  Маскировка
Использование одних и тех же имен для локальных и глобальных переменных называется маскировкой. В следующем примере как для локальной, так и для глобальной переменной используется один идентификатор х:

var х = "строка в глобальном контексте";
function maskDemo()
var х = 5;
document.write("Внутри функции maskDemo x="+x+"<br />");
}
document.write("До вызова функции x="+x+"<br />");
maskDemo();
document.write("После вызова функции x="+x+"<br />");

Как показывает результат, изменение значения, выполненное в функции, не сохраняется, потому что локальная переменная эффективно маскирует глобальную.
Вот результат выполнения этого сценария:
До вызова функции х=строка в глобальном контексте
Внутри функции maskDemo х=5
После вызова функции х=строка в глобальном контексте

    Общее правило таково: когда глобальная и локальная переменные имеют один и тот же идентификатор, приоритет имеет локальная переменная. Однако, чтобы избежать потенциальных недоразумений, никогда не используйте один и тот же идентификатор для двух переменных. Это может произойти случайно, если, например, на одной и той же странице используется большое число сценариев, созданных и поддерживаемых разными людьми. Чтобы такой случайности не допустить, можно в названиях переменных использовать префиксы, соответствующие имени функции, например использовать maskDemoX вместо х.


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика