Объекты в JS
В этой статье вы познакомитесь с объектами в JavaScript на конкретных примерах.
В статье про типы данных в JavaScript мы уже рассказывали про 7 различных типов данных. Их еще называют «примитивными»: поскольку в них может содержаться только одно значение (например, строка, число или что-нибудь другое).
В этой статье мы поговорим про восьмой тип данных — объекты.
Объект — это непримитивный тип данных для хранения коллекций различных значений. Это одна из основ языка, объекты очень часто используют в JavaScript.
Вот пример объекта в JavaScript:
// объект
let student = {
firstName: 'Дима',
class: 10
};
Как видите, объект может хранить несколько значений. Например, в нашем объекте student
хранится информация об имени школьника и классе, в которому он учится.
Примечание. Объекты в JavaScript немного отличаются от их реализации в других языках программирования. В JS не нужно создавать классы для создания объектов.
Объявление объекта
Синтаксис
Синтаксис объявления объекта в JS следующий:
let имя_объекта = { ключ1: значение1, значение2: значение2 }
Ключ:значение — свойства
При использовании синтаксиса {...} можно поместить в объект несколько свойств — так называются пары в виде ключ: значение
. При этом свойства нужно разделять запятыми.
Например:
let person = {
name: 'Андрей',
age: 20
};
console.log(typeof person); // Вывод: object
В этом примере:
-
name
иage
— ключи, 'Андрей'
и20
— значения,name: 'Андрей'
иage: 20
— свойства.
Можно в одну строку
Объявить объект можно и в одно строку:
let person = { name: 'Андрей', age: 20 };
Можно с помощью const
const person = {
name: 'Андрей',
age: 20
};
// так сделать получится
person.name = 'Петя';
// а так уже нет
person = {
name: 'Петя',
age: 20
};
Если вы не понимаете, что означает строка person.name
, — об этом ниже.
Доступ к свойствам объектов
Чтобы изменить или использовать значение свойства в объекте, нужно обратиться к нему. Доступ к значению осуществляется по ключу. Сделать это можно следующим образом:
1. Через точку
Синтаксис
имяОбъекта.ключ
Пример
const person = {
name: 'Андрей',
age: 20,
};
// доступ к свойству
console.log(person.name); // Вывод: Андрей
2. Через квадратные скобки
Синтаксис
имяОбъекта["ключ"]
Пример
const person = {
name: 'Андрей',
age: 20,
};
// доступ к свойству
console.log(person["name"]); // Вывод: Андрей
Вложенные объекты
Внутри объекта можно хранить другой объект. Это называется вложенными объектами.
Например:
const student = {
name: 'Андрей',
age: 20,
marks: {
science: 70,
math: 75
}
}
// доступ к свойству marks объекта student
console.log(student.marks); // Вывод: {science: 70, math: 75}
// доступ к свойству science объекта marks,
// который является свойством объекта student
console.log(student.marks.science); // Вывод: 70
Методы объектов
В объекте также можно хранить функции. В таком случае они называются методами этого объекта.
Например:
const person = {
name: 'Сергей',
age: 30,
// using function as a value
greet: function() { console.log('привет') }
}
person.greet(); // Вывод: привет
В этом примере функция используется в качестве значения для ключа greet
. Поэтому для вызова функции внутри объекта нужно использовать person.greet()
, а не person.greet
.