Объекты 19/29 Сергей Козин…
Конспект «Объекты». Раздел 1
Создание объекта
Объект — тип данных, который хранит в себе информацию в виде пар «ключ-значение». Каждый элемент сопоставлен
со своим ключом и порядок элементов совсем неважен.
Ключи в объекте следует делать уникальными. Если в одном объекте несколько одинаковых ключей, то используется
значение последнего.
Несколько правил синтаксиса:
— Ключ обособляется от значения двоеточием.
— Пары «ключ-значение» отделяются друг от друга запятыми.
— Значениями могут быть данные любого типа (число, строка, массив и так далее).
let cat = {
name: 'Кекс',
age: 5
};
Чтение из объекта
Чтобы получить значение свойства, к нему надо обратиться через точку объект.ключ . Такая запись называется точечной
нотацией и возвращает значение свойства объекта, если такое свойство есть. В противном случае вы получите
undefined , то есть ничего.
[Link]( [Link] ); // Выведет в консоль: Кекс
[Link]( [Link] ); // Выведет в консоль: 5
[Link]( [Link] ); // Выведет: undefined. Такого ключа в объекте нет
Запись в объект
Свойства объектов можно не только читать, но и переопределять, как и обычные переменные. А ещё в объект можно
добавлять новые свойства уже после того, как он был создан.
[Link]++; // Увеличили возраст кота на 1
[Link]([Link]) // Выведет: 6
[Link] = 'Рокки'; // Заменили снаружи значение свойства name
[Link]([Link]); // Выведет: Рокки
[Link] = 'рыжий'; // Добавили в объект новое свойство
[Link]([Link]); // Выведет: рыжий
Передача по ссылке
Объект всегда один, в памяти не создаётся новое место под копию объекта. Каждая переменная содержит не новую
отдельную сущность, а ссылку на один-единственный объект. Поэтому когда мы меняем что-то в объекте через одну
из переменных, в которой содержится ссылка на него, изменения видны во всех других переменных, будь их хоть
двадцать или сорок. Это важная особенность объектов, которую надо запомнить. Она так и называется — передача
объектов по ссылке.
let firstCat = {
name: 'Кекс',
age: 5
};
let secondCat = firstCat;
[Link](secondCat); // Выведет: {name: "Кекс", age:5}
[Link] = 'Снежок';
[Link](secondCat); // Выведет: {name: "Снежок", age:5}
Продолжить