8c1dea14

Различия. Резюме.


В таблице дано краткое резюме по некоторым отличиям. Остальная часть этой главы описывает детали использования конструкторов и прототипов JavaScript для создания иерархии объектов и сравнивает их с теми же процессами в Java.

Таблица 8.1 Сравнение объектных систем на базе классов (Java)
и на базе прототипов (JavaScript)


На базе классов (Java)

На базе прототипов (JavaScript)

Класс и экземпляр класса являются разными сущностями.

Все объекты являются экземплярами.

Определяет класс в определении класса; инстанциирует класс методами-конструкторами.

Определяет и создаёт набор объектов с помощью конструкторов функций.

Создаёт отдельный объект оператором new. 

То же самое.

Иерархия объектов конструируется путём использования определения класса для определения подклассов существующих классов.

Иерархия объектов конструируется присвоением объекта как прототипа, ассоциированного с конструктором функции.

Наследует свойства по цепочке классов.

Наследует свойства по цепочке прототипов.

Определение класса специфицирует все свойства всех экземпляров класса. Свойства не могут добавляться динамически на этапе прогона программы.

Конструктор функции или прототип специфицирует начальный набор свойств. Свойства могут удаляться и добавляться динамически в отдельных объектах или сразу для набора объектов.





Содержание раздела