Object.getOwnPropertyDescriptorsintermediate// 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.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 }