русс | укр

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

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

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

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


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

Контексты исполнения в JavaScript


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



 

Начиная исполнять функцию, интерпретатор JavaScript создает для нее новый контекст исполнения (execution context), т. е. контекст, в котором выполняется


 

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

 

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

 

Интересно отметить, что реализации JavaScript могут допускать несколько гло_ бальных контекстов исполнения с отдельным глобальным объектом каждый.1 (Хотя в этом случае каждый глобальный объект не является действительно гло_ бальным.) Очевидный пример – это клиентский JavaScript, в котором каждое отдельное окно броузера или каждый фрейм в окне определяет отдельный гло_ бальный контекст исполнения. Код клиентского JavaScript в каждом фрейме или окне работает в собственном контексте исполнения и имеет собственный глобальный объект. Однако эти отдельные клиентские глобальные объекты име_ ют свойства, связывающие их друг с другом. Другими словами, JavaScript_код в одном фрейме может ссылаться на другой фрейм с помощью выражения pa_ rent.frames[1], а на глобальную переменную x в первом фрейме можно сослаться из второго фрейма с помощью выражения parent.frames[0].x.

 

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



 

Последнее утверждение надо рассмотреть подробнее. Если JavaScript_код в од_ ном контексте исполнения может читать и писать значения свойств и выполнять функции, определенные в другом контексте исполнения, то становятся актуаль_ ными вопросы безопасности. Возьмем в качестве примера клиентский Java_ Script. Предположим, что окно броузера A запускает сценарий или содержит ин_ формацию из вашей локальной сети, а окно B запускает сценарий с некоторого произвольного сайта в Интернете. Скорее всего, мы не захотим предоставлять коду в окне B доступ к свойствам в окне A. Ведь тогда этот код получит возмож_ ность прочитать важную корпоративную информацию и, например, украсть ее. Следовательно, безопасный запуск JavaScript_кода должен обеспечить специ_ альный механизм, предотвращающий доступ из одного контекста исполнения в другой, если такой доступ не разрешен. Мы вернемся к этой теме в разделе 13.8.

 



<== предыдущая лекция | следующая лекция ==>
Глобальный объект | Еще об области видимости переменных


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


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

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

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


 


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

 
 

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

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