Читать «Изучаем программирование на 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

как работать с этой книгой