Книга: Выразительный JavaScript
Отсоединяемся от глобальной области видимости
Отсоединяемся от глобальной области видимости
Такой шаблон часто используется в модулях JavaScript, предназначающихся для браузера. Модуль возьмёт одну глобальную переменную и обернёт свой код в функцию, чтобы у него было своё личное пространство имён. Но с этим шаблоном бывают проблемы, когда много модулей требуют одно и то же имя, или когда вам надо загрузить две версии модуля одновременно.
Подкрутив кое-что, мы можем сделать систему, разрешающую одному модулю обращаться к интерфейсному объекту другого, без выхода в глобальную ОВ. Наша цель – функция require
, которая, получая имя модуля, загрузит его файл (с диска или из сети, в зависимости от платформы) и вернёт соответствующее значение с интерфейсом.
Этот подход решает проблемы, упомянутые ранее, и у него есть ещё одно преимущество – зависимости вашей программы становятся явными, и поэтому сложнее случайно вызвать ненужный вам модуль без чёткого его объявления.
Нам понадобятся две вещи. Во-первых, функция readFile
, возвращающая содержимое файла в виде строки. В стандартном JavaScript такой функции нет, но разные окружения, такие как браузер или Node.js, предоставляют свои способы доступа к файлам. Пока притворимся, что у нас есть такая функция. Во-вторых, нам нужна возможность выполнить содержимое этой строки как код.
- 2.12.2. Анализ усилительных каскадов в области малых времен
- Настройка верхней области навигации
- Создание дочерней рабочей области
- Создание рабочей области для документов
- Удаление рабочей области для документов
- Создание рабочей области для собраний с использованием шаблона
- Создание рабочей области для собраний на основе календарного события
- Использование домашней страницы рабочей области для собраний
- 2. Нормативно-правовая база, государственное регулирование и координация в области ВЯД
- Из области уведомлений вдруг пропадают значки запущенных программ
- Раздел VI Управление глобальной инфраструктурой Сети: в поисках оптимальной модели
- 20.2.1. Атрибуты cookie: срок хранения и область видимости