¿Cómo obtener descriptores de propiedad de un objeto en JavaScript?

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

Publicación traducida automáticamente

Artículo escrito por souvikm02 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *