Читать «Изучаем программирование на JavaScript» онлайн - страница 11
Unknown
получается гораздо более компактным и снижает риск ошибок при создании
большого количества объектов. Уверяем, что после изучения этой главы вы
будете пользоваться конструкторами так, словно занимались этим всю созна-
тельную жизнь.
Создание объектов с использованием объектных литералов
540
О сходстве и различии между объектами
541
Конструкторы
543
Как создать конструктор
544
Как использовать конструктор
545
Как работают конструкторы
546
В конструкторы также можно добавить методы
548
Опасная зона
551
Техника безопасности
551
Даешь массовое производство!
554
Тест-драйв на новых машинах
556
Не спешите расставаться с объектными литералами
557
Преобразование аргументов в объектный литерал
558
Преобразование конструктора Car
559
Экземпляры
561
Даже сконструированные объекты могут содержать
независимые свойства
564
Конструкторы в реальном мире
566
Объект Array
567
Другие встроенные объекты
569
21
13 использование прототипов
Сильные объекты
Научиться создавать объекты — только начало. Пришло время «на-
качать мышцы» — изучить расширенные средства определения отношений между
объектами и организовать совместное использование кода. Кроме того, нам пона-
добятся механизмы расширения существующих объектов. Иначе говоря, нам нужно
расширить свой инструментарий работы с объектами. В этой главе вы увидите, что
в JavaScript реализована достаточно мощная объектная модель, но она немно-
го отличается от модели традиционных объектно-ориентированных языков. Вместо
типичных объектно-ориентированных систем на базе классов JavaScript использует
модель прототипов — объектов, способных наследовать и расширять поведение
других объектов. Какая в этом польза для вас? Вскоре узнаете. Итак, за дело...
Object
Представление объектов на диаграммах
581
Снова о конструкторах: код используется повторно,
toString()
hasOwnProperty()
но насколько эффективно?
582
// and more
Дублирование методов действительно создает проблемы?
584
Что такое «прототип»?
585
Наследование через прототип
586
Dog Prototype
Как работает наследование
587
species: "Canine"
Переопределение прототипа
589
bark()
Как получить прототип
591
run()
Как создать прототип
592
wag()
Переопределение унаследованного метода
594
О динамических прототипах
598
Более интересная реализация метода sit
600
ShowDog Prototype
Еще раз: как работает свойство sitting
601
league: “Webville”
С чего начать проектирование объектов
605
stack()
bait()
Создание цепочки прототипов
607
gait()
Как работает наследование в цепочке прототипов
608
groom()
Анализ результатов
617
Наводим чистоту
618
Еще немного усилий
619
ShowDog
name: “Scotty”
Вызов Dog.call шаг за шагом
620
breed: “Scottish Terrier”
Применяем наследование с пользой... расширяя встроенный объект
626
weight: 15
handler: “Cookie”
Теория великого объединения Всего JavaScript
628
Объекты для лучшей жизни
628
Собираем все вместе
629
22
как пользоваться этой книгой
ВведениеНе могу поверить,
что они включили
такое в книгу
по программированию
на JavaScript!
АКОЕ
В этом разделе мы ответим на насущный
вопрос: «Так почему они включили ТavaScript?»
в книгу по программированию на J