DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #98: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

const nombre = Symbol("primer nombre");
const apellido = Symbol("apellido paterno");

const persona = {
  id: 1,
  [nombre]: "Cristian",
  [apellido]: "Villca",
  peso: 82,
  estatura: 180,
};

console.log(Object.keys(persona)); //?
Enter fullscreen mode Exit fullscreen mode

A. [ 'id', 'peso', 'estatura' ]
B. [ 'id', 'nombre', 'apellido', 'peso', 'estatura' ]
C. [ 'nombre', 'apellido' ]
D. Ninguno de los anteriores

Respuesta en el primer comentario.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author

Respuesta:
A. [ 'id', 'peso', 'estatura' ]

Las variables de tipo symbol son relativamente nuevas y tienen peculiaridades muy interesantes, una de ellas es la creaci贸n de propiedades ocultas o privadas dentro de los objetos.

Por este motivo las propiedades nombre y apellido no se muentran al ejecutar Object.keys(persona), esto puede ser de mucha 煤tilidad para no contaminar nuestros objetos de manera arbitraria y poder tener un c贸digo mas profesional y limpio en nuestros desarrollos aprovechando las 煤ltimas caracteristicas del lenguaje.

Por si te lo preguntabas, 驴entonces como podemos acceder a las propiedades que son symbol dentro de los objetos? Podemos hacer esto:

console.log(Object.getOwnPropertySymbols(persona)); // [ Symbol(primer nombre), Symbol(apellido paterno) ]
Enter fullscreen mode Exit fullscreen mode