Скобочная нотация в Javascript

Вычисляемые свойства объекта в Javascript

Аватар пользователя Olga Pejenkova
Olga Pejenkova
25 мая 2023

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

const user = { username: 'Ivan', type: 'admin' };

let propertyName = 'username';
user[propertyName]; // 'Ivan'

propertyName = 'type';
user[propertyName]; // 'admin'

В ES6/ECMAScript 2015 также добавилась возможность указывать вычисляемые имена свойств в момент создания объекта. До появления вычисляемых имен свойств нужно было сначала создать объект, а затем использовать запись в квадратных скобках, чтобы присвоить это свойство значению. Например, создаем пользователя:

const key = 'name';
const value = 'Vasya';

const user = {};
user[key] = value;

console.log(user.name); // Vasya

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

const key = 'name';
const value = 'Vasya';

const user = {
    [key]: value
};

console.log(user.name); // Vasya

Используя вычисляемые свойства, можно также производить какие-либо действия над ключами. Выражение, указанное с скобках, будет вычислено и использовано в качестве имени свойства. Например, добавим цифру к имени поля при создании пользователя:

const key = 'name';
const value = 'Vasya';

const user = {
    [key + '25']: value
};

console.log(user); // { name25: 'Vasya'}
console.log(user.name25); // 'Vasya'
33 0
Познакомьтесь с основами JavaScript бесплатно