JavaScript разработан на основе простой объектно-ориентированной парадигмы. Объект можно создать с помощью фигурных скобок {…} с дополнительным списком свойств. Свойство - это пара «ключ: значение», где key - строка (также называемая «именем свойства»), а value может быть любым.

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

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

Пустой объект (пустой шкаф) можно создать с помощью одного из двух синтаксисов:

let user = new Object(); // "object constructor" syntax
let user = {};  // "object literal" syntax

Объект с конструктором:

Мы можем создать объект с помощью этих двух шагов:

  1. Определите тип объекта, написав функцию-конструктор. Существует строгая традиция и не без оснований использовать заглавную начальную букву.
  2. Создайте экземпляр объекта с new.
function User(name, age, mobile) {
  this.name = name;
  this.age = age;
  this.mobile = mobile;
}
var user1 = new User('Talha', 26, 8801967402131);
console.log(user1)
//
user1 = {
  age: 26,
  mobile: 1993,
  name: "Talha"
}

Доступ к свойствам объекта:

Мы можем получить доступ к свойствам объекта двумя разными способами. Один из них - скобки.

object[key]

а другой - точечная запись.

object.key

const user = {
  name: "Talha",
  age: 26,
  marks: {
    math: 20,
    eng:30
  }
};
console.log(user["marks"]["math"]) //20
console.log(user.marks.math) //20

Получить значения от объекта: Object.values()

Вернуть массив значений объекта.

const user1 = {
  age: 26,
  mobile: 8801967402131,
  name: "Talha"
}
const user = Object.values(user1);
console.log(user) //[26, 8801967402131, "Talha"]

Получить ключи от объекта: Object.keys()

Вернуть массив ключей объекта.

const user1 = {
  age: 26,
  mobile: 8801967402131,
  name: "Talha"
}
const user = Object.keys(user1);
console.log(user) //["age", "mobile", "name"]

Объект для записей массива: Object.entries()

Создает массив, содержащий массивы пар ключ / значение объекта.

const user1 = {
  age: 26,
  mobile: 8801967402131,
  name: "Talha"
}
const user = Object.entries(user1);
console.log(user) 
//[["age", 26], ["mobile", 8801967402131], ["name", "Talha"]]

Слияние объекта с разворотом:

Объединение двух объектов и возврат нового объекта.

const user1 = {
  age: 26,
  mobile: 8801967402131,
  name: "Talha"
}
const newObj = {
  ...user1,
  location: 'sylhet'
}
console.log(newObj)
//
newObj = {
  age: 26,
  location: "Dhaka",
  mobile: 8801967402131,
  name: "Talha"
}

Объединение двух объектов: Object.assign()

Аналогично оператору распространения. Позволяет объединять объекты вместе.

const user1 = {
  birtYear: 1993,
  name: "Talha"
}
const user1NewVal = {
  age: 26,
}
const combineObj = Object.assign(user1, user1NewVal)
console.log(combineObj)
//
{
  age: 26,
  birtYear: 1993,
  name: "Talha"
}

Замораживание объекта: Object.freeze()

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

const user1 = {
  age: 26,
  mobile: 1993,
  name: "Talha"
}
Object.freeze(user1);
user1.name = 'Abu';
console.log(user1.name) //"Talha"

Объект заморожен или нет: Object.isFrozen ()

Object.isFrozen() определяет, заморожен ли объект. Вернуть значение Bolean.

const user1 = {
  age: 26,
  mobile: 1993,
  name: "Talha"
}
console.log(Object.isFrozen(user1)) // false
Object.freeze(user1)
console.log(Object.isFrozen(user1)) // ture

Запечатывание объекта: Object.seal()

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

const user1 = {
  mobile: 1993,
  name: "Talha"
}
Object.seal(user1);
user1.age = 'ABU';
console.log(user1.name) //"ABU"
user1.age = 26;
console.log(user1.age) //undefined

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

Запечатан объект или нет: Object.isSealed ()

Метод Object.isSealed() определяет, запечатан ли объект.

const user1 = {
  mobile: 1993,
  name: "Talha"
}
console.log(Object.isSealed(user1)) //false
Object.seal(user1);
console.log(Object.isSealed(user1)) // ture

Локализация: Object. toLocaleString ()

Метод возвращает строку, представляющую объект. Этот метод предназначен для переопределения производными объектами для целей, специфичных для локали.

const date1 = new Date(Date.UTC(2018, 11, 20, 3, 0, 0));
console.log(date1.toLocaleString('bn'))
//"৫/১২/২০১৮ ৯:০০:০০ AM"

Ссылки:

  1. Полезные методы массивов и объектов Javascript
  2. Справочник по JavaScript
  3. Объекты: основы