¿Qué significa propiedad enumerable en JavaScript?

Una propiedad enumerable en JavaScript significa que una propiedad se puede ver si se itera usando el bucle for…in o el método Object.keys(). Todas las propiedades que se crean mediante una asignación simple o un inicializador de propiedades son enumerables de forma predeterminada.

Ejemplo 1:

<script>
// Creating a student object
const student = {
    registration: '12342',
    name: 'Sandeep',
    age: 27,
    marks: 98
};
  
// prints all the keys in student object
for (const key in student) {
    console.log(key);
}
</script>

Producción:

registration
name
age
marks

Ejemplo 2: dado que todas las propiedades se inicializan mediante el inicializador de propiedades, todas tienen el valor enumerable establecido en verdadero de forma predeterminada. Para cambiar explícitamente el atributo enumerable interno de una propiedad, se usa el método Object.defineProperty() . Además, para verificar si una propiedad es enumerable o no, usamos la función propertyIsEnumerable() . Devuelve verdadero si la propiedad es enumerable o falso en caso contrario.

<script>
// Creating a student object
const student = {
    registration: '12342',
    name: 'Sandeep',
    age: 27,
};
  
// This sets the enumerable attribute
// of marks property to false 
  
Object.defineProperty(student, 'marks', {
    value: 98,
    configurable: true,
    writable: false,
    enumerable: false,
});
  
// To print whether enumerable or not
console.log(student.propertyIsEnumerable('registration')); 
console.log(student.propertyIsEnumerable('name'));
console.log(student.propertyIsEnumerable('age'));
console.log(student.propertyIsEnumerable('marks'));
</script>

Producción:

true
true
true
false

Nota: las propiedades que se crean con el método defineProperty() tienen un indicador enumerable establecido en falso. Cuando se ejecuta el mismo código anterior usando un bucle for, la propiedad «marcas» no es visible.

// This will not print the property 
// Who's enumerable property is set to false

for (const key in student){
    console.log(key)
}

Producción:

registration
name
age

Publicación traducida automáticamente

Artículo escrito por vanigupta20024 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 *