Зарегистрируйтесь, чтобы продолжить обучение

Модификация JS: Объекты

Для создания и обновления значений свойств в объекте используется одна и та же операция — присваивание. Для несуществующих свойств она запишет новый элемент, для существующих — перезапишет новым значением:

const user = { name: 'Vasya', married: true, age: 25 }

user.married = false
// Изменение существующего свойства
// То же самое
// user['married'] = false;

user.surname = 'Petrov'
// Добавление нового свойства
// То же самое
// user['surname'] = 'Petrov';

console.log(user)
// => { name: 'Vasya', married: false, age: 25, surname: 'Petrov' }

Несмотря на то, что объект объявлен как константа, он меняется. Причина такого поведения точно такая же, как и в случае массивов. В константе хранится не сам объект, а ссылка на него. Это значит, что менять объект можно, но заменить объект на другой нельзя:

const user = { name: 'Maria' }
user.name = 'Igor'

// Возникнет ошибка
user = { name: 'Mike' } // Boom!

Подробнее об этом будет в одном из следующих уроков.

Изменяемость объектов позволяет наполнять их постепенно. То есть мы можем создать пустой объект и затем расширить его нужными свойствами:

const course = {}

course.name = 'Хекслет — JS: Объекты'
course.description = 'Самый классный курс на свете, не проходите мимо, дети!'

console.log(course.name) // 'Хекслет — JS: Объекты'

console.log(course)
// {
//   name: 'Хекслет — JS: Объекты',
//   description: 'Самый классный курс на свете, не проходите мимо, дети!'
// }

Удалить элемент из объекта можно с помощью оператора delete:

const user = { name: 'Vasya', wrongProp: 'bug' }

delete user.wrongProp

console.log(user)
// => { name: 'Vasya' }

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

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff