10.1 Объекты
В JavaScript объекты являются основным способом хранения и организации данных. Объекты представляют собой коллекции пар «ключ-значение», где ключи (или свойства) — это строки, а значения могут быть любыми данными (числа, строки, массивы, другие объекты и т.д.).
Основные понятия и работа с объектами:
-
Создание объекта: Объекты в JavaScript можно создавать двумя способами:
-
Литеральный способ: Это самый простой и часто используемый способ создания объектов.
let person = { name: "John", // свойство name age: 30, // свойство age greet: function() { // метод greet console.log("Hello!"); } };
-
Через конструктор
new Object()
: Это альтернативный способ создания объекта, но он используется реже.let person = new Object(); person.name = "John"; person.age = 30; person.greet = function() { console.log("Hello!"); };
-
-
Доступ к свойствам объекта: Для доступа к свойствам объекта можно использовать два способа:
- Через точечную нотацию (dot notation):
console.log(person.name); // John console.log(person.age); // 30
- Через квадратные скобки (bracket notation):
Этот способ полезен, если ключ объекта содержит пробелы или является переменной.console.log(person["name"]); // John console.log(person["age"]); // 30
- Через точечную нотацию (dot notation):
-
Добавление или изменение свойств объекта: Для добавления новых или изменения существующих свойств объекта используется та же точечная нотация или квадратные скобки.
person.name = "Alice"; // Изменяем существующее свойство person.city = "New York"; // Добавляем новое свойство
-
Методы объектов: Объекты могут содержать не только данные, но и функции, которые называются методами. Методы объектов — это функции, которые выполняются в контексте объекта.
person.greet = function() { console.log("Hello, " + this.name); }; person.greet(); // "Hello, Alice"
Внутри метода
this
ссылается на сам объект, что позволяет обращаться к его свойствам. -
Удаление свойств объекта: Для удаления свойства объекта используется оператор
delete
.delete person.age; // Удаляет свойство age
-
Цикл по объекту: Для перебора всех свойств объекта можно использовать цикл
for...in
.for (let key in person) { console.log(key + ": " + person[key]); }
-
Вложенные объекты: Объекты могут быть вложены внутри других объектов, что позволяет создавать более сложные структуры данных.
let person = { name: "Alice", address: { street: "123 Main St", city: "New York" } }; console.log(person.address.city); // New York
Пример использования объекта:
let car = {
brand: "Toyota",
model: "Camry",
year: 2020,
start: function() {
console.log("Engine started");
}
};
console.log(car.brand); // Toyota
console.log(car["model"]); // Camry
car.start(); // Engine started
car.year = 2021; // Обновляем год
console.log(car.year); // 2021
delete car.model; // Удаляем модель
console.log(car.model); // undefined
Особенности объектов в JavaScript:
- Динамическая природа: Вы можете добавлять, изменять или удалять свойства объекта в любое время.
- Ссылочная передача: Объекты передаются по ссылке, а не по значению. Это означает, что если вы присвоите один объект другому, оба будут ссылаться на один и тот же объект в памяти.
let obj1 = { a: 1 }; let obj2 = obj1; // obj2 теперь ссылается на тот же объект, что и obj1 obj2.a = 2; console.log(obj1.a); // 2 console.log(obj2.a); // 2
Объекты — это основа работы с данными в JavaScript и позволяют организовывать и структурировать информацию удобным способом.