Свойства объекта

Для добавления свойства в объект, следует внутри фигурных скобок указать его название и после двоеточия задать значение любого типа. Если нужно добавить несколько свойств, то пары свойство: значение перечисляются через запятую:

let car = {
   model: 'ВАЗ-2109',
   year: 2007
};
console.log(car); // { model: 'ВАЗ-2109', year: 2007 }

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

<Переменная> = <Объект>.<Имя свойства>
<Объект>.<Имя свойства> = <Значение>

Получим значение свойства model и изменим значение свойства year:

// Получаем значение свойства
let model = car.model;
console.log(model);     // ВАЗ-2109
// Изменяем значение свойства
car.year = 2009;
console.log(car);       // { model: 'ВАЗ-2109', year: 2009 }

Обратите внимание: хотя названия переменной и свойства объекта совпадают, никакого конфликта имен не будет, т. к. переменная и свойство расположены в разных областях видимости. Фигурные скобки ограничивают область видимости, а для доступа к идентификаторам в этой области видимости нужно использовать точечную нотацию, предварительно указав название объекта.

Название свойства должно быть допустимым идентификатором. Если название содержит запрещенные символы, например, дефис или пробел, то такое название следует указывать в виде строки:

let car = {
   'Модель автомобиля': 'ВАЗ-2109',
   'Год выпуска': 2007
};
console.log(car);
// { 'Модель автомобиля': 'ВАЗ-2109', 'Год выпуска': 2007 }

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

let name = 'test';
let obj = {
   [name]: 20,
   ['prop' + 2]: 30
}
console.log(obj); // { test: 20, prop2: 30 }

Для обращения к свойствам к последних двух случаях удобно использовать  следующие форматы:

<Переменная> = <Объект>['<Имя свойства>']
<Объект>['<Имя свойства>'] = <Значение>

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

console.log( car['Модель автомобиля'] ); // ВАЗ-2109
car['Год выпуска'] = 2009;
console.log(car);
// { 'Модель автомобиля': 'ВАЗ-2109', 'Год выпуска': 2009 }

console.log( obj[name] ); // 20
obj['prop' + 2] = 40
console.log(obj);         // { test: 20, prop2: 40 }

Если нужно добавить свойство на основе названия переменной и ее значения, то вместо пары свойство: значение указывается только название переменной:

let name = 'Николай';
let obj = {
   name,
   age: 30
}
console.log(obj); // { name: 'Николай', age: 30 }

Если присваивается значение свойству, которое не существует в объекте, то оно будет динамически добавлено:

let car = {};
car.model = 'ВАЗ-2109';
car.year = 2007;
car.color = 'red';
console.log(car); // { model: 'ВАЗ-2109', year: 2007, color: 'red' }

При объявлении переменной объектного типа с помощью ключевого слова const, следует помнить, что присвоить новое значение переменной будет нельзя, но можно изменить значения свойств объекта:

const obj = { a: 1, b: 2 };
console.log(obj);  // { a: 1, b: 2 }
// Присвоить другое значение нельзя
// obj = {}; // Ошибка
// TypeError: Assignment to constant variable.
// Значение свойства можно изменить!
obj.a = 88;
console.log(obj);  // { a: 88, b: 2 }

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов