Entendiendo los Objetos en JavaScript

Yeison Daza 🍉
Apr 3, 2016 · 3 min read

Los objetos son, una de las características menos entendidas en JavaScript, dado que su implementación tiene algunas diferencias importantes con muchos lenguajes de programación más tradicionales.

Vayamos paso a paso, intentando entenderlos.

Nota: Este contenido lo publiqué primero en mi newsletter, la semana después de publicar el newsletter publico en mi blog, si quieres ser el primero en leer suscríbete.

En palabras simples:

Los objetos son una colección de propiedades

Para construir objetos podemos hacerlo de dos maneras,

  • Objetos declarativos o literales: podemos crear objetos sin necesidad de un constructor o instanciar una clase, para esto solo declaramos el objeto y sus propiedades.
  • Objetos construidos: JavaScript es un lenguaje libre de clases, pero tenemos el keyword new, el cual nos permite crear un nuevo objeto, de esta manera podemos utilizar una función que cumpla el rol del constructor.

Contenido

Acceder a propiedades

  • notación con .
  • notación con []

Atributos de las propiedades

  • value
  • configurable
  • enumerable
  • writable

Para poder ver los atributos usamos Object.getOwnPropertyDescriptor(target, propiedad)

Sabiendo esto podremos ver nuestro objetos representados como

Establecer atributos

Veamos cada uno de estos atributos y entendamos mejor a que hacen referencia.

Writable

Configurable

Enumerable

Metodos utiles

  • Object.seal(objeto) recibe un objeto y retorna un objeto al cual no se le pueden agregar propiedades, ni configurar las existentes
  • Object.freeze(Objeto) recibe un objeto y retorna uno al cual, no se puede agregar propiedades, modificarlas, o sobrescribir las actuales

Los objetos en JavaScript son entidades dinámicas que se pueden modificar en cualquier punto, esto aunque es una característica poderosa, no siempre la vamos a querer.

Aplicando los métodos que anteriores vamos a poder llegar a tener objetos inmutables, pero si tuviéramos otros objetos como propiedades, estos no aplican esta inmutabilidad, podríamos crear una función recursiva, que vuelva todas las propiedades de nuestros objetos inmutables o utilizas librerías como immutable.js .

Entendiendo JavaScript

Artículos semanales sobre JavaScript, aprende no solo las…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store