Объекты в JavaScript

Экспресс обзор объектов в JavaScript. Создание объектов, добавление свойств и методов, удаление свойств из объекта, перебор свойств объекта.

Объекты в JavaScript

Объекты в JavaScript используются для хранения коллекций различных значений и сложных сущностей. В JavaScript объекты используются очень часто, это одна из основ языка.

Объявление объекта

Пустой объект:

let home = new Object(); // синтаксис "конструктор объекта"
let home = {};           // синтаксис "литерал объекта"

Объект со свойствами и методами:

let home = {
    name: 'Дом',        // Свойство объекта
    'Жилой': true,
    test: 123,

    fn: function() {    // Метод объекта

    },

    fn() {              // Метод объекта в ES-6

    }
}

Добавление свойства в объект

home.massa = 2500;
home['ves'] = 100;

Удаление свойства из объекта

delete home.test;

Перебор свойств объекта и их значений

for (const key in home) {
    console.log(key, home[key]); // key - ключ, home[key] - значение
}

 

Методы объектов

Проверка на наличие свойства у объекта (2 способа):

console.log(home.hasOwnProperty('roof')); // false

console.log('massa' in obj);              // true

let exists = home.hasOwnProperty('roof');

if (exists) {
    console.log('такое свойство есть');
} else {
    console.log('такого свойства нет');
}

Список имён свойств объекта Object.keys()

let a = Object.keys(home);
console.log(a); // ["name", "massa", "ves"]

for (let i = 0; i < a.length; i++) {
    let key = a[i];
    console.log(home[key]);
}

Динамическое создание свойств

Свойства у объектов могут быть созданы динамически при помощи метода Object.defineProperty(объект, имя свойства, параметры)

Параметры могут быть следующие:

  • configurable - можно ли будет изменить параметры свойства
  • enumerable - будет ли свойство доступно для оператора for
  • value - значение по умолчанию
  • writable - можно ли перезаписывать значение свойства
  • get - функция, выполняющаяся при попытке получить значение свойства
  • set - функция, выполняющаяся при попытке установить значение свойства

Пример:

Object.defineProperty(obj, 'имя свойства', {
    enumerable: false,  // скрыто от for in
    value: '',
    writable: false     // нельзя изменить
});

configurable, enumerable и writable по умолчанию устанавливаются как false.

Object.defineProperties

Object.defineProperties() используется для добавления сразу нескольких свойств в объект.

Синтаксис:

Object.defineProperties(obj, {
    name: {
        enumerable: false,
        writable: true
    },
    lastName: {
        enumerable: true,
        writable: true
    }
});
Записи по теме
Проверка объекта на undefined
Проверка объекта на undefined Два способа как проверить свойство JavaScript объекта на undefined. Как узнать есть ли свойство у объекта.
Сортировка массива объектов по свойству
Сортировка массива объектов по свойству Как отсортировать массив однотипных javascript-объектов по значению одного из их свойств. Для примера возьмём массив пользователей, где у пользователей есть id, имя и возраст:
Комментарии 0

*** чтобы писать комментарии.