Objetos en JavaScript: representar entidades reales
Aprende a modelar datos con objetos, acceder a propiedades, crear métodos con `this` y trabajar de forma segura con claves dinámicas y acceso opcional.
Los objetos son la forma natural de representar entidades del mundo real en código: usuarios, productos, pedidos, configuraciones o sesiones.
Mientras un array organiza elementos por posición, un objeto organiza información por significado (`nombre`, `precio`, `estado`).
Dominar objetos te prepara para trabajar con JSON, APIs y estado de interfaz de manera profesional.
Objetivo de esta lección: construir, leer y actualizar objetos con precisión y sin errores silenciosos.
- Un objeto agrupa datos relacionados bajo una sola identidad.
- Si modelas un usuario con variables sueltas (`nombre`, `email`, `rol`), pronto perderás contexto. Un objeto mantiene toda la información conectada.
- Esto mejora lectura, mantenimiento y escalabilidad cuando tu aplicación crece.
- Sintaxis principal: `{ clave: valor }`.
- La forma más común de crear objetos en JavaScript es con llaves y pares clave/valor separados por comas.
Pensar en objetos: entidad + atributos
Un objeto agrupa datos relacionados bajo una sola identidad.
Si modelas un usuario con variables sueltas (`nombre`, `email`, `rol`), pronto perderás contexto. Un objeto mantiene toda la información conectada.
Esto mejora lectura, mantenimiento y escalabilidad cuando tu aplicación crece.
Crear objetos literales
Sintaxis principal: `{ clave: valor }`.
La forma más común de crear objetos en JavaScript es con llaves y pares clave/valor separados por comas.
Elige nombres de clave semánticos para que el objeto se entienda sin documentación extra.
Leer y actualizar propiedades
Punto para claves conocidas, corchetes para claves dinámicas.
`obj.propiedad` es directo y legible cuando conoces la clave. `obj[clave]` te permite acceso dinámico cuando la clave viene en variable.
Actualizar o añadir propiedades es una asignación normal, pero conviene hacerlo con intención para no desordenar el modelo.
- Punto: más legible en la mayoría de casos.
- Corchetes: necesario para claves dinámicas.
- Puedes crear claves nuevas en tiempo de ejecución.
- Verifica typos: un nombre mal escrito devuelve `undefined`.
Métodos de objeto y `this`
Un método combina comportamiento y datos en la misma entidad.
Cuando guardas una función dentro de un objeto, esa función puede usar `this` para acceder a propiedades del propio objeto.
Este patrón es útil para construir modelos más expresivos y evitar pasar siempre las mismas propiedades como argumentos externos.
Patrones seguros: claves, valores y acceso opcional
Inspecciona estructura antes de asumir que una propiedad existe.
`Object.keys` y `Object.values` ayudan a inspeccionar datos dinámicos. Optional chaining (`obj?.prop`) evita errores cuando faltan campos anidados.
Estos patrones son esenciales al consumir datos externos donde no controlas siempre la forma del objeto.
- `Object.keys(obj)` para listar propiedades.
- `Object.values(obj)` para revisar valores.
- `obj?.campo?.subcampo` para acceso defensivo.
- `'campo' in obj` para comprobar existencia.