Методы объекта
Вот список некоторых часто используемых встроенных методов объекта в 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 доступно множество других методов, и вы также можете определить собственные методы для своих собственных объектов.