Object.getOwnPropertyDescriptor - garevna/js-course GitHub Wiki
• Object.assign()
• Object.create()
• Object.defineProperty()
• Object.defineProperties()
• Object.entries()
• Object.freeze()
Этот метод позволяет получить дескриптор собственного свойства объекта
Возвращает объект дескриптора свойства
Первым аргументом метода является объект
второй аргумент - имя свойства объекта
Для каждого свойства объекта существует дескриптор свойства
Дескриптор свойства - это объект, который содержит атрибуты свойства:
значение свойства
( по умолчанию undefined )
( true | false )можно ли изменять значение свойства( по умолчанию true )
сеттер свойства
( функция, которая вызывается при записи значения свойства )
( по умолчанию имеет значение undefined )
геттер свойства
( функция, которая вызывается при чтении значения свойства )
( по умолчанию имеет значение undefined )
является свойство перечислимым, или нет
т.е. будет ли оно итерироваться оператором for..in
и возвращаться при вызове метода Object.keys()
( по умолчанию имеет значение false )
доступно ли свойство для модификации ( удаления, изменения атрибутов свойства )
можно ли конфигурировать свойство с помощью метода defineProperty
( по умолчанию false )
☕
var newObject = {
name: "Егор",
age: 25,
write: true,
read: true,
getName() {},
setName() {}
}
Object.getOwnPropertyDescriptor ( newObject, "getName" )▼ {value: ƒ, writable: true, enumerable: true, configurable: true}
configurable: true
enumerable: true
► value: ƒ getName()
writable: true
► __proto__: Object• Object.getOwnPropertyDescriptors()
• Object.getOwnPropertyNames()
• Object.getOwnPropertySymbols()
• Object.getPrototypeOf()
• Object.is()
• Object.isExtensible()
• Object.isFrozen()
• Object.isSealed()
• Object.keys()
• Object.preventExtensions()
• Object.seal()
• Object.setPrototypeOf()
• Object.values()