Объектом является встроенный тип данных для хранения пар ключ-значение. Данные внутри объекта неупорядоченные, а значения могут быть любого типа.
Для обозначения литерала объекта используются фигурные скобки {}:
Есть два способа получить доступ к свойству объекту:
- Использовать точечную нотацию свойств, пишется имя объекта, за которым следует оператор точки, а затем имя свойства(ключ).
- Второй способ получить доступ к значению ключа - использовать скобки []. Чтобы использовать скобки для доступа к свойству объекта, передается имя свойства(ключ) в виде строки.
Объекты изменяемы, что означает, что можно обновлять их после создания. При присвоении свойств может произойти одно из двух:
- Если свойство уже существует в объекте, любое значение, которое оно имело ранее, будет заменено новым присвоенным значением.
- Если свойство с таким именем не было, к объекту будет добавлено новое свойство.
Следует помнить, что, хотя можно переназначит объект, объявленный с помощью const, его все же можно изменить, то есть можно добавить новые свойства и изменять свойства, которые там есть.
Также можно удалить свойство с помощью оператора delete.
Когда данные, хранящиеся в объекте, являются функцией, это называется методом. Свойство - это то, что имеет объект, а метод - это то, что делает объект. Можно включать методы в наши объектные литералы, создавая обычные пары ключ-значение, разделённые запятыми. Ключ служит именем нашего метода, а значение - выражением анонимной функции.
С новым синтаксисом метода, представленным в ES6, можно опустить двоеточие и ключевое слово function.
Методы объекта вызываются путем добавления имени объекта с оператором точки, за которым следует имя метода и круглые скобки:
В коде приложения объекты часто вложены - объект может иметь другой объект в качестве свойства, которое, в свою очередь, может иметь свойство, представляющее собой массив из ещё большего количества объектов.
Также можно связать операторы для доступа к вложенным свойствам. Придётся обратить внимание на то, какой оператор имеет смысл использовать на каждом слое. Может быть полезно представить, что вы ПК, и оценить каждое выражение слева направо, чтобы каждая операция стала более управляемой.
Цикл JavaScript for...in можно использовать для перебора ключей объекта. На каждой итерации одно из свойств объекта присваиваться переменной этого цикла.