LOS 10 MÉTODOS DE OBJECT EN JAVASCRIPT QUE TODO DESARROLLADOR DEBE DOMINAR

En el desarrollo frontend y backend con JavaScript, entender a fondo cómo funcionan los objetos es fundamental. Aunque muchos desarrolladores usan objetos a diario, pocos aprovechan todo el potencial que ofrece el objeto Object nativo de JavaScript.

Objeto de ejemplo

Los ejemplos que se van a usar se van a basar en el siguiente objeto:

const obj = { a: 10, b: 20, c: 30 };
  • Object.keys: Extraes todas las claves del obketo. Es útil cuando se necesita iterar solo sobre las claves o validar la estructura de un objeto.

    Object.keys(obj); // Output: ['a', 'b', 'c']
    
  • Object.values: Extrae todos los valores del obketo. Es similar al anterior, pero devuelve un array con los valores. Es ideal para cuando solo se necesitan los datos y no las claves.

    Object.keys(obj); // Output: ['a', 'b', 'c']
    
  • Object.entries: Obtiene los pares clave-valor. Devuelve un array de arrays, donde cada sub-array contiene "[clave, valor]". Perfecto para usar con "map(),", "forEach()" o para transformar objetos fácilmente.

    Object.entries(obj); // Output: [['a', 10], ['b', 20], ['c', 30]]
    
  • Object.assign: Copia y fusiona objetos. Permite copiar las propiedades de uno o varios objetos de origen hacia un objeto destino. Muy usado para clonar objetos superficialmente o combinar configuraciones por defecto con opciones del usuario.

    Object.getOwnPropertyNames(obj); // Output: ['a', 'b', 'c']
    
  • Object.freeze(): Congelar un objeto, o inmutabilidad. Impide que se añadan, eliminen o modifiquen propiedades existentes. Esencial para mantener el estado inmutable en aplicaciones React, Redux o cualquier arquitectura que priorice la inmutabilidad.

    Object.freeze(obj);
    obj.newProp = 10; // No tendrá efecto
    
  • Object.seal: Sellado de objetos. Permite modificar propiedades existentes, pero impide añadir o eliminar nuevas propiedades. Útil cuando se quiere proteger la estructura del objeto pero aún permitir cambios de valores.

    Object.seal(obj);
    delete obj.a;   // No funciona
    obj.d = 40;     // No funciona
    
  • Object.hasOwn: Verificar propiedad propia. Comprueba si un objeto tiene una propiedad como propia (no heredada del prototipo). Reemplaza al antiguo "obj.hasOwnProperty" y evita problemas con objetos que heredan propiedades modificadas.

    Object.hasOwn(obj, 'a'); // true
    
  • Object.is: Comparación estricta de valores. Realiza una comparación más precisa que el operador "===", especialmente útil con "NaN" y "-0".

    Object.is(NaN, NaN);     // true
    Object.is(-0, 0);   // false
    
  • Object.create: Crea objetos con prototipo específico. Permite crear un nuevo objeto que herede propiedades de otro objeto como prototipo. Muy útil para implementar herencia prototípica de forma explícita.

    const child = Object.create(obj);
    
Es necesario entender bien la inmutabilidad de los objetos. Métodos como freeze y seal son clave para gestionar el estado de forma predecible, especialmente en aplicaciones grandes.