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

Вот список некоторых часто используемых встроенных методов объекта в JavaScript.

Object.keys(obj) — возвращает массив имен собственных перечислимых свойств объекта.

const obj = { a: 1, b: 2, c: 3 };
const keys = Object.keys(obj);
console.log(keys); // Output: ["a", "b", "c"]

Object.values(obj) — возвращает массив значений собственных перечисляемых свойств объекта.

const obj = { a: 1, b: 2, c: 3 };
const values = Object.values(obj);
console.log(values); // Output: [1, 2, 3]

Object.entries(obj) — Возвращает массив собственных перечисляемых пар свойств объекта [ключ, значение].

const obj = { a: 1, b: 2, c: 3 };
const entries = Object.entries(obj);
console.log(entries); // Output: [["a", 1], ["b", 2], ["c", 3]]

Object.assign(target, ...sources) — копирует значения всех перечисляемых свойств из одного или нескольких исходных объектов в целевой объект.

const target = {};
const source = { a: 1, b: 2 };
Object.assign(target, source);
console.log(target); // Output: { a: 1, b: 2 }

Object.defineProperty(obj, prop, descriptor) — определяет новое свойство непосредственно на объекте или изменяет характеристики существующего свойства.

const obj = { a: 1, b: 2 };
Object.freeze(obj);
obj.c = 3; // Attempt to add a new property, but it's ignored in strict mode or throws an error in non-strict mode.
console.log(obj); // Output: { a: 1, b: 2 }

Object.getOwnPropertyDescriptor(obj, prop) — возвращает дескриптор определенного свойства объекта.

const obj = { a: 1, b: 2 };
Object.freeze(obj);
obj.c = 3; // Attempt to add a new property, but it's ignored in strict mode or throws an error in non-strict mode.
console.log(obj); // Output: { a: 1, b: 2 }

Object.freeze(obj) — замораживает объект, делая его неизменяемым, предотвращая добавление, изменение или удаление свойств.

console.log(Object.is(5, 5)); // Output: true
console.log(Object.is({}, {})); // Output: false (because they are different objects)

Object.seal(obj) — запечатывает объект, предотвращая добавление или удаление свойств, но разрешая изменение существующих свойств.

const obj = { a: 1, b: 2 };
Object.seal(obj);
obj.c = 3; // Attempt to add a new property, but it's ignored in strict mode or throws an error in non-strict mode.
delete obj.a; // Attempt to delete a property, but it's ignored in strict mode or throws an error in non-strict mode.
obj.b = 10; // Existing properties can be modified.
console.log(obj); // Output: { a: 1, b: 10 }

Object.getPrototypeOf(obj) — возвращает прототип (т. е. __proto__) объекта.

const obj = {};
const proto = Object.getPrototypeOf(obj);
console.log(proto === Object.prototype); // Output: true

Object.setPrototypeOf(obj, prototype) — устанавливает прототип (т. е. __proto__) объекта.

Object.setPrototypeOf(obj, prototype) — устанавливает прототип (т. е. __proto__) объекта.

Object.getOwnPropertyNames(obj) — возвращает массив всех свойств (перечисляемых или неперечисляемых), найденных непосредственно в объекте.

const obj = { a: 1, b: 2 };
console.log(obj.hasOwnProperty('a')); // Output: true
console.log(obj.hasOwnProperty('c')); // Output: false

Object.hasOwnProperty(prop) — возвращает логическое значение, указывающее, есть ли у объекта свойство с указанным именем.

Object.hasOwnProperty(prop) — возвращает логическое значение, указывающее, есть ли у объекта свойство с указанным именем.

Object.defineProperty(obj, prop, descriptor) — определяет новое свойство непосредственно на объекте или изменяет характеристики существующего свойства.

const obj = {};
Object.defineProperty(obj, 'name', {
  value: 'John',
  writable: false, // The property cannot be modified.
  enumerable: true, // The property will be included in Object.keys() and Object.values().
  configurable: false // The property cannot be deleted or have its attributes changed.
});
console.log(obj.name); // Output: John
obj.name = 'Jane'; // Attempt to modify, but it's ignored in strict mode or throws an error in non-strict mode.
delete obj.name; // Attempt to delete, but it's ignored in strict mode or throws an error in non-strict mode.

Object.create(proto, propertiesObject) — создает новый объект с указанным объектом-прототипом и необязательными дескрипторами свойств.

Это лишь некоторые из встроенных методов, доступных для объекта Object в JavaScript. Имейте в виду, что в экосистеме JavaScript доступно множество других методов, и вы также можете определить собственные методы для своих собственных объектов.