--- title: Object.getOwnPropertyDescriptors() slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors ---
Метод Object.getOwnPropertyDescriptors()
возвращает все собственные дескрипторы свойств данного объекта.
Object.getOwnPropertyDescriptors(obj)
obj
Объект, содержащий все собственные дескрипторы свойств объекта. Может быть пустой объект, если нет свойств.
Этот метод позволяет изучить точное описание всех собственных свойств объекта. Свойство в JavaScript состоит из строкового имени или {{jsxref("Symbol")}} и свойства дескриптора. Дополнительную информацию о типах свойств дескрипторов и их атрибутах можно найти в {{jsxref("Object.defineProperty()")}}.
Свойство дескриптора это запись с некоторыми из следующих атрибутов:
value
writable
true
тогда и только тогда когда значение, связанное со свойством, может быть изменено (только дескрипторы данных).get
set
configurable
true
тогда и только тогда, когда тип этого свойства дескриптора может быть изменён, и если свойство может быть удалено из соответствующего объекта.enumerable
true
тогда и только тогда, когда это свойство отображается при перечислении свойств соответствующего объекта.
В то время как метод {{jsxref("Object.assign()")}} будет только копировать перечисляемые и собственные свойства из исходного объекта в целевой объект, вы можете использовать этот метод и {{jsxref("Object.create()")}} для поверхностного копирования между двумя неизвестными объектами:
Object.create( Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj) );
Типичный способ создания подкласса это определить подкласс, определить свойства этого экземпляра. Это может быть неудобно особенно для получателей и установщиков. Вместо этого, вы можете использовать этот код для установки прототипа:
function superclass() {} superclass.prototype = { // Определите ваши методы и свойства здесь }; function subclass() {} subclass.prototype = Object.create( superclass.prototype, { // Определите ваши методы и свойства здесь } );
{{Compat}}