JS Built-ins
ObjectObject.getOwnPropertyDescriptorsintermediate

Object.getOwnPropertyDescriptors() β€” clone with Object.create

πŸ“– Usage Example
// Inspect all property descriptors at once
const obj = { a: 1, b: 2 }
Object.getOwnPropertyDescriptors(obj)
// β†’ { a: { value: 1, writable: true, ... }, b: { value: 2, ... } }

Use Object.getOwnPropertyDescriptors() to get all property descriptors of an object, useful when doing a complete clone.

Object.getOwnPropertyDescriptors() for cloning

Object.create(proto, Object.getOwnPropertyDescriptors(source)) creates a precise clone preserving all descriptors.

Challenge: Implement preciseClone(obj) that uses Object.create and Object.getOwnPropertyDescriptors to clone obj.

preciseClone({ a: 1 }) // β†’ { a: 1 }
πŸ’‘ Hints (2)
  • β€’ `Object.create(proto, descriptors)` sets both the prototype and all property descriptors at once.
  • β€’ This technique clones getters, non-writable, non-enumerable properties β€” unlike `Object.assign`.