русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Еще об области видимости переменных


Дата добавления: 2015-07-09; просмотров: 662; Нарушение авторских прав


 

Когда мы в первый раз обсуждали понятие области видимости переменной, я оп_ ределил его только на основе лексической структуры JavaScript_кода: глобаль_ ные переменные имеют глобальную область видимости, а переменные, объяв_ ленные в функции, – локальную. Если одно определение функции вложено

1 Это отход от темы; если он вам неинтересен, спокойно переходите к следующему разделу.


 

76 Глава 4. Переменные

в другое, то переменные, объявленные в этой вложенной функции, имеют вло_ женную локальную область видимости. Теперь, когда мы знаем, что глобальные переменные представляют собой свойства глобального объекта, а локальные – свойства особого объекта вызова, мы можем вернуться к понятию области види_ мости переменной и переосмыслить его. Это даст нам хорошую возможность по_ новому взглянуть на существование переменных во многих контекстах и глубже понять, как работает JavaScript.

 

В JavaScript с каждым контекстом исполнения связана цепочка областей види' мости (scope chain), представляющая собой список, или цепочку, объектов. Ко_гда JavaScript_коду требуется найти значение переменной x (этот процесс назы_ вается разрешением имени переменной), он начинает поиск в первом (наиболее глубоком) объекте цепочки. Если в этом объекте отыскивается свойство с име_ нем x, то используется значение этого свойства. Если в первом объекте не удает_ ся найти свойство с именем x, то JavaScript продолжает поиск в следующем объ_ екте цепочки. Если во втором объекте тоже не найдено свойство с именем x, по_ иск продолжается в следующем объекте, и т. д.

 

В JavaScript_коде верхнего уровня (в коде, не содержащемся ни в одном из опре_ делений функций), цепочка областей видимости состоит только из глобального объекта. Все переменные разыскиваются в этом объекте. Если переменная не су_ ществует, то ее значение равно undefined. В функции (не вложенной) цепочка об_ ластей видимости состоит из двух объектов. Когда функция ссылается на пере_ менную, в первую очередь проверяется объект вызова (локальная область види_ мости), во вторую очередь – глобальный объект (глобальная область видимости). Вложенная функция будет иметь три или более объектов в цепочке областей ви_ димости. Процесс поиска имени переменной в цепочке областей видимости функции иллюстрирует рис. 4.1.




 

 

Рис. 4.1. Цепочка областей видимости и разрешения имени переменной


 



<== предыдущая лекция | следующая лекция ==>
Контексты исполнения в JavaScript | Выражения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.684 сек.