русс | укр

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

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

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

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


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

Необязательные аргументы


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


 

Когда функция вызывается с меньшим количеством аргументов, чем описывается в определении, недостающие аргументы получают значение undefined. Иногда бы_ вает удобным учесть необязательность некоторых аргументов – тех, которые мо_ гут быть опущены при вызове функции. В этом случае желательно предусмотреть возможность присваивания по умолчанию достаточно разумных значений аргу_ ментам, которые были опущены (или переданы со значением null). Например:

 

// Добавить в массив a перечислимые имена свойств объекта o и вернуть массив a.

 

// Если массив a не указан или равен null, создать и вернуть новый массив a function copyPropertyNamesToArray(o, /* необязательный */ a) {

 

if (!a) a = []; // Если массив не определен или получено

 

// значение null, создать новый пустой массив a for(var property in o) a.push(property);

 

return a;

}

 

Когда функция определена таким образом, появляются более широкие возмож_ ности обращения к ней:

 

// Получить имена свойств объектов o и p
var a = copyPropertyNamesToArray(o); // Получить свойства объекта o
  // в виде нового массива
copyPropertyNamesToArray(p,a); // добавить к массиву свойства объекта p

 

Вместо инструкции if в первой строке этой функции можно использовать опера_ тор || следующим образом:

 

a = a || [];

 

В главе 5 уже говорилось, что оператор || возвращает первый аргумент, если он равен true или преобразуется в логическое значение true. В противном случае возвращается второй аргумент. В данном случае он вернет a, если переменная a определена и не содержит значение null даже в том случае, если a – это пустой массив. В противном случае он вернет новый пустой массив.

 

Обратите внимание: при объявлении функций необязательные аргументы долж_ ны завершать список аргументов, чтобы их можно было опустить. Программист, который будет писать обращение к вашей функции, не сможет передать второй аргумент и при этом опустить первый. В этом случае он вынужден будет явно пе_ редать в первом аргументе значение undefined или null.




 

144 Глава 8. Функции



<== предыдущая лекция | следующая лекция ==>
Именование функций | Списки аргументов переменной длины: объект Arguments


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


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

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

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


 


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

 
 

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

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