Читать «Изучаем программирование на JavaScript» онлайн - страница 10
Unknown
454
И напоследок...
455
Функции как значения
459
Функции как полноправные граждане JavaScript
462
Полеты первым классом
463
Написание кода для обработки и проверки пассажиров
464
Перебор пассажиров
466
Передача функции другой функции
467
Тест-драйв... вернее, полет
467
Возвращение функций из функций
470
Код заказа напитков
471
Код заказа напитков: другой подход
472
Постойте, одного напитка недостаточно!
473
Заказ напитков с использованием первоклассной функции
474
Тест-драйв-полет
475
«Веб-кола»
477
Как работает метод массивов sort
479
Все вместе
480
Тем временем в «Веб-коле»
481
Тест-драйв сортировки
482
19
11 анонимные функции, область действия и замыкания
Серьезные функции
Мы узнали много нового о функциях, но это далеко не всё. В этой главе
мы пойдем дальше и разберемся в темах, которыми обычно занимаются профессиона-
лы. Вы научитесь действительно эффективно работать с функциями. Глава будет не
слишком длинной, но с довольно интенсивным изложением материала, так что к кон-
цу главы выразительность вашего кода JavaScript превзойдет все ожидания. Вы также
будете готовы к тому, чтобы взяться за анализ кода коллеги или заняться изучением
библиотеки JavaScript с открытым кодом, потому что мы заодно изучим некоторые рас-
пространенные идиомы и соглашения, связанные с использованием функций. А если
вы никогда не слышали об анонимных функциях и замыканиях, то это самое подхо-
дящее место для знакомства!
Посмотрим на функции с другой стороны...
496
Как использовать анонимную функцию?
497
Когда определяется функция? Здесь возможны варианты...
503
Что произошло? Почему функция fly не определена?
504
Как создаются вложенные функции
505
Как вложение влияет на область действия
506
Вот черт! Джуди
Погодите
В двух словах о лексической области действия
508
снова права.
секунду... Джуди
не упоминала о замыканиях?
Кажется, они как-то связаны
Чем интересна лексическая область действия
509
с тем, что мы делаем. Давайте-ка
Снова о функциях
511
изучим эту тему и поквитаемся
с ней.
Вызовы функций (снова)
512
Что такое «замыкание»?
515
Как замкнуть функцию
516
Использование замыканий для реализации счетчика
518
Тест-драйв волшебного счетчика
519
Взгляд за кулисы
519
Создание замыкания с передачей функционального
выражения в аргументе
521
Замыкание содержит непосредственное окружение,
а не его копию
522
Создание замыкания в обработчике события
523
Программа без замыкания
524
Программа с замыканием
524
Тест-драйв счетчика нажатий
525
Как работает замыкание
526
20
12 нетривиальное создание объектов
Создание объектов
До настоящего момента мы создавали объекты вручную. Для
каждого объекта использовался объектный литерал, который задавал все
без исключения свойства. Для небольших программ это допустимо, но для
серьезного кода потребуется что-то получше, а именно конструкторы объ-
ектов. Конструкторы упрощают создание объектов, причем вы можете созда-
вать объекты по единому шаблону — иначе говоря, конструкторы позволяют
создавать серии объектов, обладающих одинаковыми свойствами и содержа-
щих одинаковые методы. Код, написанный с использованием конструкторов,