Перейти к основному содержимомуКак работают `Object.defineProperty()` и `Object.getOwnPropertyDescriptors()`?
УглублённыйОбъекты
Object.defineProperty(obj, prop, descriptor) — создаёт или изменяет свойство с указанными атрибутами:
- При создании через
defineProperty атрибуты по умолчанию false (в отличие от литерала, где true)
Object.defineProperties(obj, props) — определяет несколько свойств сразу
Object.getOwnPropertyDescriptor(obj, prop) — возвращает дескриптор одного свойства
Object.getOwnPropertyDescriptors(obj) — возвращает дескрипторы всех собственных свойств
- Используется для точного копирования объектов с геттерами/сеттерами:
Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj))