Que es enumerable en javascript

Javascript es de naturaleza dinámica, por lo que podemos modificar libremente el comportamiento y la propiedad de los objetos.

Ejemplo

let data = {name: ‘Shivam Gupta’}

podemos hacer cualquier cosa con datos como: agregar una nueva clave / eliminar clave o modificar datos existentes como: data.name = “xyz”

¿Pero en algunos casos si queremos evitar nuestro objeto para que no pueda modificarse?

Simplemente significa que la propiedad se mostrará si itera sobre el objeto usando for..in loop u Object.keys .

datos var = {nombre: ‘xyz’}; usando for..in loop podemos acceder al nombre para que esto sea enumerable por defecto

Significa que podemos iterar sobre las claves de objeto si las claves están configuradas como enumerables (de forma predeterminada enumerable)

Veamos un ejemplo simple:


ES-6 proporciona un nuevo mecanismo para que podamos establecer las propiedades dadas para una clave dentro del objeto:

  { 
valor: "Shivam Gupta",
grabable: verdadero,
enumerable: verdadero,
configurable: verdadero
}
  1. Puede hacer que la clave sea enumerable – falsa (para que no se pueda acceder a esa clave por … en bucle u object.keys)
  2. Puede hacer que una clave en particular sea legible solo mediante – escribible: falso

Object.defineProperty method allows us to change the object keys property

  Object.defineProperty (objectName, 'key', { 
valor: 'Valor para esa clave',
configurable: verdadero,
grabable: falso
enumerable: falso
});

Probemos ejemplos simples 🙂

var info = {
nombre: “Shivam gupta”,
direcciones: “xyz”,
correo electrónico: “[email protected]
}

Object.defineProperty (información, ‘nombre’, {
valor : ‘Ahora cambio de Shivam’,
configurable : verdadero,
escribible : falso, // no podemos editar el nombre usando. operador
enumerable : false // significa que ya no podemos acceder a esta clave for..in loop u object.keys ()
} );

Object.keys (información); // [“direcciones”, “correo electrónico”]

Así que la clave de nombre no puede acceder.

Intentemos cambiar el nombre por –

info.name = “por favor cambie”

pero no cambiará debido a que se puede escribir: falso

Gracias, por favor escriba en la sección de comentarios!