Aquí, vamos a discutir los descriptores de propiedad de un objeto en JavaScript. El método Object.getOwnPropertyDescriptor() devuelve un objeto que describe una propiedad específica en un objeto dado. Un objeto de JavaScript se puede crear de muchas maneras y sus propiedades se pueden llamar mediante el uso de descriptores de propiedad para ese objeto.
Sintaxis:
Object.getOwnPropertyDescriptor( obj, prop )
Object.getOwnPropertyDescriptor() toma dos parámetros como entrada, como se describe a continuación:
- obj : Hace referencia al nombre del objeto cuyas propiedades se van a describir.
- prop : Define la propiedad específica en el objeto cuyo valor se va a devolver.
Valor devuelto: este método devuelve la propiedad del objeto si existe, de lo contrario, devuelve indefinido.
Ejemplo: En el siguiente ejemplo, se crea un objeto Obj que consta de dos propiedades property1 y property2. Usamos la propiedad Object.getOwnPropertyDescriptor() para devolver los atributos y valores relacionados con cada propiedad.
JavaScript
<script> // Object const Obj = { property1: "GeeksforGeeks", property2: 12 }; const descriptor1 = Object .getOwnPropertyDescriptor(Obj, 'property1'); const descriptor2 = Object .getOwnPropertyDescriptor(Obj, 'property2'); console.log(descriptor1.configurable); // expected output: true console.log(descriptor1.enumerable); // expected output: true console.log(descriptor1.value); // expected output: GeeksforGeeks console.log(descriptor2.value); // expected output: 12 </script>
Producción:
true true GeeksforGeeks 12
Descriptores:
Un descriptor de propiedad de un objeto consta de algunos de los siguientes atributos para definir cada propiedad:
- valor: Es el valor asociado a la propiedad que se llama
- writable: Indica si la propiedad se puede cambiar o no. Solo devuelve verdadero si la propiedad se puede manipular.
- enumerable: si la propiedad es visible durante la enumeración de las propiedades del objeto correspondiente, entonces devuelve verdadero.
- configurable: Indica si el descriptor de la propiedad se puede cambiar o quitar del objeto correspondiente.
Ejemplo: El siguiente ejemplo describe los atributos de propiedad para property1 y property2 relacionados con el objeto Obj.
JavaScript
<script> const Obj = { property1: "GeeksforGeeks", property2: 12 }; const descriptor1 = Object .getOwnPropertyDescriptor(Obj, 'property1'); const descriptor2 = Object .getOwnPropertyDescriptor(Obj, 'property2'); console.log(descriptor1); console.log(descriptor2); </script>
Producción:
{value: 'GeeksforGeeks', writable: true, enumerable: true, configurable: true} configurable: true enumerable: true value: "GeeksforGeeks" writable: true [[Prototype]]: Object {value: 12, writable: true, enumerable: true, configurable: true} configurable: true enumerable: true value: 12 writable: true [[Prototype]]: Object