Конспект «Объекты». Раздел 1

Создание объекта

Объект — тип данных, который хранит в себе информацию в виде пар «ключ-значение». Каждый элемент сопоставлен со своим ключом и порядок элементов совсем неважен.

Ключи в объекте следует делать уникальными. Если в одном объекте несколько одинаковых ключей, то используется значение последнего.

Несколько правил синтаксиса:

  • Ключ обособляется от значения двоеточием.
  • Пары «ключ-значение» отделяются друг от друга запятыми.
  • Значениями могут быть данные любого типа (число, строка, массив и так далее).
let cat = {
  name: 'Кекс',
  age: 5
};

Чтение из объекта

Чтобы получить значение свойства, к нему надо обратиться через точку объект.ключ. Такая запись называется точечной нотацией и возвращает значение свойства объекта, если такое свойство есть. В противном случае вы получите undefined, то есть ничего.

console.log(cat.name); // Выведет в консоль: Кекс
console.log(cat.age); // Выведет в консоль: 5
console.log(cat.color); // Выведет: undefined. Такого ключа в объекте нет

Запись в объект

Свойства объектов можно не только читать, но и переопределять, как и обычные переменные. А ещё в объект можно добавлять новые свойства уже после того, как он был создан.

cat.age++; // Увеличили возраст кота на 1
console.log(cat.age) // Выведет: 6
cat.name = 'Рокки'; // Заменили снаружи значение свойства name
console.log(cat.name); // Выведет: Рокки
cat.color = 'рыжий'; // Добавили в объект новое свойство
console.log(cat.color); // Выведет: рыжий

Передача по ссылке

Объект всегда один, в памяти не создаётся новое место под копию объекта. Каждая переменная содержит не новую отдельную сущность, а ссылку на один-единственный объект. Поэтому когда мы меняем что-то в объекте через одну из переменных, в которой содержится ссылка на него, изменения видны во всех других переменных, будь их хоть двадцать или сорок. Это важная особенность объектов, которую надо запомнить. Она так и называется — передача объектов по ссылке.

let firstCat = {
  name: 'Кекс',
  age: 5
};

let secondCat = firstCat;
console.log(secondCat); // Выведет: {name: "Кекс", age:5}

firstCat.name = 'Снежок';
console.log(secondCat); // Выведет: {name: "Снежок", age:5}
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Объекты» тренажёра «Базовые структуры данных» можно после регистрации и оформления подписки.