Получение и изменение свойств объекта
Получить значение свойства можно с помощью операторов точки (.
) и квадратных скобок ([]
). Слева от оператора должно находиться выражение, возвращающее объект. При использовании оператора точки справа должен находиться простой идентификатор, соответствующий имени свойства. При использовании квадратных скобок в квадратных скобках должно указываться выражение, возвращающее строку, содержащую имя требуемого свойства:
var author = book.author; // Получить свойство "author" объекта book.
var name = author.surname // Получить свойство "surname" объекта author.
var title = book["main title"] // Получить свойство "main title" объекта book.
Чтобы создать новое свойство или изменить значение существующего свойства, также используются операторы точки и квадратные скобки, как в операциях чтения значений свойств, но само выражение помещается уже слева от оператора присваивания:
book.edition = 6; // Создать свойство "edition" объекта book.
book["main title"] = "ECMAScript"; // Изменить значение свойства "main title".
В ECMAScript 3 идентификатор, следующий за точкой, не может быть зарезервированным словом: нельзя записать обращение к свойству o.for
или o.class
, потому что for
является ключевым словом, а class
– словом, зарезервированным для использования в будущем. Если объект имеет свойства, имена которых совпадают с зарезервированными словами, для доступа к ним необходимо использовать форму записи с квадратными скобками: o["for"]
и o["class"]
.
Стандарт ECMAScript 5 ослабляет это требование и допускает возможность использования зарезервированных слов после оператора точки. При использовании формы записи с квадратными скобками выражение в скобках должно возвращать строку. Если быть более точными, это выражение должно возвращать строку или значение, которое может быть преобразовано в строку.