JavaScript. Подробное руководство, 6-е издание
Шрифт:
Наконец, ниже приводится описание некоторых терминов, которые помогут нам различать три обширные категории объектов в языке JavaScript и два типа свойств:
• Объект базового языка– это объект или класс объектов, определяемый спецификацией ECMAScript. Массивы, функции, даты и регулярные выражения (например) являются объектами базового языка.
• Объект среды выполнения– это объект, определяемый средой выполнения (такой как веб-броузер), куда встроен интерпретатор JavaScript. Объекты HTMLElement, представляющие структуру веб-страницы в клиентском JavaScript, являются объектами среды выполнения. Объекты среды выполнения могут также быть объектами базового языка, например, когда среда выполнения определяет методы, которые являются обычными объектами
• Пользовательский объект– любой объект, созданный в результате выполнения программного кода JavaScript.
• Собственное свойство– это свойство, определяемое непосредственно в данном объекте.
• Унаследованное свойство– это свойство, определяемое прототипом объекта."
6.1. Создание объектов
Объекты можно создавать с помощью литералов объектов, ключевого слова new и (в ECMAScript 5) функции Object.create. Все эти приемы описываются в следующих разделах.
6.1.1. Литералы объектов
Самый простой способ создать объект заключается во включении в программу литерала объекта. Литерал объекта - это заключенный в фигурные скобки список свойств (пар имя/значение), разделенных запятыми. Именем свойства может быть идентификатор или строковый литерал (допускается использовать пустую строку). Значением свойства может быть любое выражение, допустимое в JavaScript, - значение выражения (это может быть простое значение или объект) станет значением свойства. Ниже приводится несколько примеров создания объектов:
В ECMAScript 5 (и в некоторых реализациях ECMAScript 3) допускается использовать зарезервированные слова в качестве имен свойств без кавычек. Однако в целом имена свойств, совпадающие с зарезервированными словами, в ECMAScript 3 должны заключаться в кавычки. В ECMAScript 5 последняя запятая, следующая за последним свойством в литерале объекта, игнорируется. В большинстве реализаций ECMAScript 3 завершающие запятые также игнорируются, но IE интерпретирует их наличие как ошибку.
Литерал объекта - это выражение, которое создает и инициализирует новый объект всякий раз, когда производится вычисление этого выражения. Значение каждого свойства вычисляется заново, когда вычисляется значение литерала. Это означает, что с помощью единственного литерала объекта можно создать множество новых объектов, если этот литерал поместить в тело цикла или функции, которая будет вызываться многократно, и что значения свойств этих объектов могут отличаться друг от друга.
6.1.2. Создание объектов с помощью оператора new
Оператор new создает и инициализирует новый объект. За этим оператором должно следовать имя функции. Функция, используемая таким способом, называется конструктором и служит для инициализации вновь созданного объекта. Базовый JavaScript включает множество встроенных конструкторов для создания объектов базового языка. Например:
Помимо этих встроенных конструкторов имеется возможность определять свои собственные функции-конструкторы для инициализации вновь создаваемых объектов. О том, как это делается, рассказывается в главе 9.
6.1.3. Прототипы
Прежде чем перейти к третьему способу создания объектов, необходимо сделать паузу, чтобы познакомиться с прототипами. Каждый объект в языке JavaScript имеет второй объект (или
Все объекты, созданные с помощью литералов объектов, имеют один и тот же объект-прототип, на который в программе JavaScript можно сослаться так:
Земля под ногами. Из истории заселения и освоения Эрец Исраэль. 1918-1948. Книга 2
Научно-образовательная:
история
рейтинг книги
Тринадцатый X
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Воплощение Похоти
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
рейтинг книги
Эволюционер из трущоб
1. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Древесный маг Орловского княжества 5
5. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Второгодка. Книга 5. Презренный металл
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Вернувшийся: Посол. Том IV
4. Вернувшийся
Фантастика:
космическая фантастика
киберпанк
рейтинг книги
Первый среди равных. Книга X
10. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Казань
2. Русский бунт
Фантастика:
альтернативная история
рейтинг книги
Товарищ "Чума" 5
5. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
рейтинг книги
Я не царь. Книга XXIV
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Газлайтер. Том 40
40. История Телепата
Фантастика:
альтернативная история
аниме
попаданцы
рейтинг книги
Менталист. Конфронтация
2. Выиграть у времени
Фантастика:
боевая фантастика
рейтинг книги
Убей героя
Фантастика:
детективная фантастика
рейтинг книги