Objetos
Objetos Fundamental
Section titled “Objetos ”Declaración y acceso Básico
Section titled “Declaración y acceso ”Crear objetos
Section titled “Crear objetos”// Objeto literalconst persona = { nombre: "Juan", edad: 25, ciudad: "Madrid"};
// Constructor Objectconst usuario = new Object();usuario.nombre = "María";usuario.edad = 30;
// Factory functionfunction crearPersona(nombre, edad) { return { nombre, edad };}Acceso a propiedades
Section titled “Acceso a propiedades”const persona = { nombre: "Juan", edad: 25};
// Notación de puntoconsole.log(persona.nombre); // "Juan"
// Notación de corchetesconsole.log(persona["edad"]); // 25
// Propiedad que no existeconsole.log(persona.apellido); // undefinedMétodos y propiedades Importante
Section titled “Métodos y propiedades ”Definir métodos
Section titled “Definir métodos”const persona = { nombre: "Juan", saludar() { return `Hola, soy ${this.nombre}`; }, // Método con arrow function obtenerEdad: () => 25};
console.log(persona.saludar()); // "Hola, soy Juan"Propiedades computadas
Section titled “Propiedades computadas”const clave = "edad";const persona = { nombre: "Juan", [clave]: 25 // Propiedad computada};
console.log(persona.edad); // 25Iteración con for…in y Object.keys() Importante
Section titled “Iteración con for…in y Object.keys() ”for…in
Section titled “for…in”const persona = { nombre: "Juan", edad: 25, ciudad: "Madrid"};
for (let propiedad in persona) { console.log(`${propiedad}: ${persona[propiedad]}`);}Object.keys()
Section titled “Object.keys()”const persona = { nombre: "Juan", edad: 25};
// Obtener array de clavesconst claves = Object.keys(persona);// ["nombre", "edad"]
// Obtener array de valoresconst valores = Object.values(persona);// ["Juan", 25]
// Obtener array de pares [clave, valor]const entradas = Object.entries(persona);// [["nombre", "Juan"], ["edad", 25]]Desestructuración de objetos Moderno
Section titled “Desestructuración de objetos ”const persona = { nombre: "Juan", edad: 25, ciudad: "Madrid"};
// Desestructuración básicaconst { nombre, edad } = persona;console.log(nombre); // "Juan"
// Renombrar variablesconst { nombre: nombrePersona } = persona;console.log(nombrePersona); // "Juan"
// Valores por defectoconst { apellido = "Pérez" } = persona;console.log(apellido); // "Pérez"
// Desestructuración anidadaconst usuario = { nombre: "Juan", direccion: { calle: "Principal", ciudad: "Madrid" }};
const { direccion: { ciudad } } = usuario;console.log(ciudad); // "Madrid"Métodos de Object Avanzado
Section titled “Métodos de Object ”Object.assign()
Section titled “Object.assign()”const objetivo = { a: 1 };const fuente = { b: 2 };const resultado = Object.assign(objetivo, fuente);// { a: 1, b: 2 }Object.freeze() y Object.seal()
Section titled “Object.freeze() y Object.seal()”// Congelar objeto (no se puede modificar)const configuracion = Object.freeze({ api: "https://api.ejemplo.com"});
// Sellar objeto (se pueden modificar propiedades existentes)const usuario = Object.seal({ nombre: "Juan", edad: 25});Mejores prácticas Recomendado
Section titled “Mejores prácticas ”Usar nombres descriptivos
Section titled “Usar nombres descriptivos”// ❌ Maloconst obj = { n: "Juan", e: 25 };
// ✅ Buenoconst persona = { nombre: "Juan", edad: 25};Usar shorthand properties
Section titled “Usar shorthand properties”const nombre = "Juan";const edad = 25;
// ❌ Maloconst persona = { nombre: nombre, edad: edad};
// ✅ Buenoconst persona = { nombre, edad };Usar métodos concisos
Section titled “Usar métodos concisos”// ❌ Maloconst persona = { saludar: function() { return "Hola"; }};
// ✅ Buenoconst persona = { saludar() { return "Hola"; }};
🐝