Descubra todo sobre el método getOwnPropertyDescriptors() de JavaScript del objeto Object
Este método devuelve todos los descriptores de propiedades propias (no heredadas) de un objeto.
Object.getOwnPropertyDescriptors(obj)
acepta un objeto y devuelve un nuevo objeto que proporciona una lista de descriptores.
Ejemplo:
const dog = {}Object.defineProperties(dog, { breed: { value: 'Siberian Husky' }})Object.getOwnPropertyDescriptors(dog)/*{ breed: { value: 'Siberian Husky', writable: false, enumerable: false, configurable: false }}*/
Hay un caso de uso que hace que esta propiedad sea muy útil. ES2015 nos proporciona Object.assign()
, que copia todas las propiedades enumerables propias de uno o más objetos y devuelve un nuevo objeto. Sin embargo, hay un problema con eso, porque no se copian correctamente las propiedades con atributos que no son predeterminados.
Si un objeto, por ejemplo, tiene solo un definidor, no se copia correctamente a un nuevo objeto mediante Object.assign()
. Por ejemplo, con este objeto:
const person1 = { set name(newName) { console.log(newName) }}
Este intento de copia no funcionará:Te recomendamos 🍌 Películas Porno en Español, Estrenos, Inglés, Parodias, Hentai XXX Online Gratis
const person2 = {}Object.assign(person2, person1)
Pero esto funcionará y copiará el configurado correctamente:
const person3 = {}Object.defineProperties(person3, Object.getOwnPropertyDescriptors(person1))
Como puedes ver con una prueba de consolación:
person1.name = 'x'"x"person2.name = 'x'person3.name = 'x'"x"
person2
Se pierde el colocador, no fue copiado.
La misma limitación se aplica a la clonación superficial de objetos con Object.create()
.
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
El método getOwnPropertyDescriptors() del objeto
Este método devuelve todos los descriptores de propiedades propias (no heredadas) de un objeto. Descubra todo sobre el método getOwnPropertyDescriptors() de
programar
es
2025-01-19

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente