Денни Гудман "JavaScript Библия пользователя"

НАЗАД СОДЕРЖАНИЕ ВПЕРЕД
страница 127

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

"Локальная область действия" определяется в тех случаях, когда для разных локальных переменных в рамках одного документа используются одинаковые имена. В большинстве случаев подобная практика весьма ущербна, поскольку приводит к очень неприятным ошибкам, которые крайне тяжело отслеживать. В то же время, в некоторых случаях удобно использовать одни и те же имена, скажем, для счетчиков в программном цикле for. Это вполне безопасно, поскольку такие счетчики в начале запуска цикла каждый раз заново инициализируются с начальным значением. Тем не менее, вставить один цикл for в другой такой же цикл, не использовав при этом отличную переменную для счетчика, вам не удастся.

Для того чтобы продемонстрировать структуру и поведение локальных и глобальных переменных, а также показать, почему крайне нежелательно использовать в документе для разных переменных одинаковые имена, приведен листинг 7.2. В нем описаны две локальные и две глобальные переменные. При этом имена локальной переменной совпадают с именами глобальной переменной.

<html>

  <head>
    <script type="text/JavaScript">
      var aBoy = "Charlie Brown"; // глобальная переменная
      var hisDog = "Snoopy"; // глобальная переменная
      function demo(){
      // Это пример того, как поступать не следует
        var hisDog = "Gromit" // локальная версия переменной hisDog
        var output = hisDog + "does not belong to " aBoy + ".<br>";
        document.write(output);
      }
    </script>
  </head>
  <body>
    <script type="text/JavaScript">
      demo(); // запускается при загрузке документа
      document.write(hisDog + "belongs to " + aBoy + ".");
    </script>
  </body>
  
</html>

Листинг 7.2. Демонстрация использования локальных и глобальных переменных

страница 127
НАЗАД СОДЕРЖАНИЕ ВПЕРЕД

Денни Гудман "JavaScript Библия пользователя"

Только на OZON.ru! Все спецпредложения на DVD Все серии Пуаро

поиск на сайте

Рейтинг@Mail.ru Rambler's Top100 Счетчик тИЦ и PR
Сайт управляется системой uCoz