русс | укр

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

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

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

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


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

Объект вызова как пространство имен


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


 

Иногда бывает удобно создать функцию только ради того, чтобы получить объ_ ект вызова, который действует как временное пространство имен, где можно оп_

1 Этот раздел содержит материал повышенной сложности, который при первом прочтении можно пропустить.


 

8.8. Область видимости функций и замыкания
   

 

ределять переменные и свойства, не беспокоясь о возможных конфликтах с гло_ бальным пространством имен. Предположим, для примера, что имеется файл с программным кодом на языке JavaScript, который необходимо использовать в разных JavaScript_программах (или, если дело касается клиентского языка JavaScript, на разных веб_страницах). Допустим, что в этом коде, как и любом другом, определяются переменные, предназначенные для хранения промежу_ точных результатов вычислений. Проблема заключается в следующем: посколь_ ку этот код будет использоваться в разных программах, в нем могут определять_ ся переменные с именами, конфликтующими с именами, определяемыми в са_ мих программах.

 

Чтобы избежать подобных конфликтов, импортируемый код можно поместить внутрь функции и затем обращаться к ней. Благодаря этому переменные будут определяться внутри объекта вызова функции:

 

function init( ) {

// Здесь располагается импортируемый программный код.

// Любые объявленные переменные станут свойствами объекта вызова,

// тем самым будет исключена вероятность конфликтов

// с глобальным пространством имен.

}

init( ); // Не забудьте вызвать функцию!

 

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



 

(function( ) { // Это безымянная функция.

// Здесь располагается импортируемый программный код. Любые

// объявленные переменные станут свойствами объекта вызова, тем самым

 

// исключается вероятность конфликтов с глобальным пространством имен. })(); // конец функционального литерала и его вызов.

 

Обратите внимание на круглые скобки, окружающие функциональный лите_ рал, – этого требует синтаксис JavaScript.

 



<== предыдущая лекция | следующая лекция ==>
Методы apply и call() | Вложенные функции в качестве замыканий


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


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

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

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


 


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

 
 

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

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