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