Технологии объектно-ориентированного программирования ECMAScript
- Предыдущая страница Контур (closure)
- Следующая страница Применение объектов
термины объектно-ориентированного программирования
Объект
ECMA-262 определяет объекты (object) как «несортированный набор свойств, каждый из которых хранит примитивное значение, объект или функцию». Строго говоря, это означает, что объекты представляют собой массив значений без определенного порядка.
Несмотря на то, что ECMAScript так определяет объекты, его более общее определение основано на представлении名词 (людей, мест или вещей) кодом.
Класс
Каждый объект определяется классом, и класс можно рассматривать как рецепт объекта. Класс не только определяет интерфейс объекта (атрибуты и методы, к которым может обращаться разработчик), но и определяет внутреннюю работу объекта (код, который позволяет работать атрибутам и методам). Компиляторы и интерпретаторы строят объекты на основе описания класса.
Экземпляр
Когда программа использует класс для создания объекта, созданный объект называется экземпляром класса (instance). Единственное ограничение на количество созданных классом объектов зависит от физической памяти компьютера, на котором выполняется код. Каждый экземпляр ведет себя одинаково, но обрабатывает набор независимых данных. Процесс создания объекта из класса называется инстанцированием (instantiation).
В предыдущих главах мы упоминали, что ECMAScript не имеет официальных классов. Вместо этого ECMA-262 определяет объекты как рецепты объектов. Это компромиссное решение в логике ECMAScript, так как объектные определения实际上是 объектами сами по себе. Даже если классы не существуют на самом деле, мы называем объектные определения классами, потому что большинство разработчиков более знакомы с этим термином, и функционально они эквивалентны.
Требования языка面向 объектов
Язык面向 объектов должен предоставлять разработчику четыре основные способности:
- Encapsulation - способность хранить связанную информацию (будь то данные или методы) в объекте.
- Агрегация - способность хранить один объект внутри другого.
- Наследование - способность класса получать атрибуты и методы от другого класса (или нескольких классов).
- Полиморфизм - способность писать функции или методы, которые могут работать несколькими способами.
ECMAScript поддерживает эти требования и, следовательно, может быть рассмотрен как объектно-ориентированный.
Состав объекта
В ECMAScript объекты состоят из атрибутов (attribute), которые могут быть как примитивными значениями, так и значениями ссылок. Если атрибут содержит функцию, он рассматривается как метод объекта (method), в противном случае атрибут рассматривается как свойство объекта (property).
- Предыдущая страница Контур (closure)
- Следующая страница Применение объектов