русс | укр

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

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

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

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


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

Функциональные литералы


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


 

JavaScript позволяет определять функции в виде функциональных литералов. Как говорилось в главе 3, функциональный литерал – это выражение, определяю_ щее неименованную функцию. Синтаксис функционального литерала во многом напоминает синтаксис инструкции function, за исключением того, что он ис_

1 Различные реализации JavaScript могут иметь менее строгие требования к опреде_ лениям функций, чем указано в стандарте. Например, реализации Netscape Java_ Script 1.5 допускают наличие «условных определений функций» внутри инструк_ ций if.


 

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

пользуется как выражение, а не как инструкция, и ему не требуется имя функ_ ции. Следующие две строки кода определяют две более или менее идентичные функции с помощью инструкции function и функционального литерала:

 

function f(x) { return x*x; } // инструкция function var f = function(x) { return x*x; }; // функциональный литерал

 

Функциональные литералы создают неименованные функции, но синтаксис до_ пускает указание имени функции, что может пригодиться при написании ре_ курсивных функций, вызывающих самих себя. Например:

 

var f = function fact(x) { if (x <= 1) return 1; else return x*fact(x _1); };

 

Эта строка кода определяет неименованную функцию и сохраняет ссылку на нее в переменной f. Она на самом деле не создает функцию с именем fact, но позво_ ляет телу функции ссылаться с помощью этого имени на саму себя. Заметим, од_ нако, что именованные функциональные литералы до версии JavaScript 1.5 ра_ ботали не вполне корректно.

 

Функциональные литералы создаются JavaScript_выражениями, а не инструк_ циями, и потому могут использоваться более гибко. Это особенно подходит для функций, которые вызываются только один раз и не должны иметь имени. На_ пример, функция, определенная с помощью выражения функционального лите_ рала, может быть сохранена в переменной, передана другой функции или даже вызвана непосредственно:



 

f[0] = function(x) { return x*x; }; // Определить и сохранить функцию в переменной a.sort(function(a,b){return a_b;}); // Определить функцию; передать ее другой функции var tensquared = (function(x) {return x*x;})(10); // Определить и вызывать

 



<== предыдущая лекция | следующая лекция ==>
Определение и вызов функций | Именование функций


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


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

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

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


 


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

 
 

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

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