Cómo clonar objetos en JavaScript

| Última modificación: 21 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo vamos a compartir contigo una habilidad esencial en el mundo del desarrollo web: clonar objetos en JavaScript. Si eres un entusiasta de la programación o aspiras a entrar en el sector IT, entender cómo clonar objetos en JavaScript es un paso fundamental. Aquí exploraremos varias técnicas para lograrlo, incluyendo Object.assign y el operador spread, y profundizaremos en las diferencias entre una copia superficial y una copia profunda. ¡Prepárate para adentrarte en el fascinante mundo de la clonación de objetos en JavaScript!

¿Qué significa clonar objetos en JavaScript?

Clonar objetos en JavaScript se refiere a la acción de crear una copia de un objeto existente. Esto es útil cuando necesitas trabajar con una copia de un objeto sin afectar al objeto original. Veamos algunas de las técnicas más comunes para lograrlo.

Usando Object.assign

Object.assign es una función incorporada en JavaScript que permite copiar propiedades de un objeto fuente a un objeto destino. Aquí tienes un ejemplo de cómo usarlo:

const objetoOriginal = { nombre: "Juan", edad: 30 }; 
const copia = Object.assign({}, objetoOriginal);

En este caso, copia será una copia superficial del objetoOriginal. Esto significa que si el objeto original contiene propiedades que son objetos en sí mismos, ambas copias apuntarán al mismo objeto interno.

El operador spread

El operador spread (también conocido como rest operator) es otra forma de clonar objetos en JavaScript. Funciona de la siguiente manera:

const objetoOriginal = { nombre: "Ana", edad: 25 }; 
const copia = { ...objetoOriginal };

Al igual que con Object.assign, esta técnica crea una copia superficial del objeto original.

Ejemplo práctico

Aquí tienes un ejemplo sencillo de cómo clonar un objeto en JavaScript utilizando el operador spread:

// Definimos un objeto original 
const objetoOriginal = { nombre: "Juan", edad: 30 }; 
// Creamos una copia del objeto utilizando el operador spread 
const copia = { ...objetoOriginal }; 
// Modificamos la copia 
copia.nombre = "Carlos"; 
// Imprimimos ambos objetos 
console.log("Objeto Original:", objetoOriginal); 
console.log("Copia del Objeto:", copia);

En este ejemplo, primero definimos un objeto llamado objetoOriginal con una propiedad “nombre” y una propiedad “edad”. Luego, creamos una copia del objeto utilizando el operador spread y lo almacenamos en la variable copia. Después, modificamos la propiedad “nombre” en la copia.

Si ejecutas este código, verás que, al imprimir ambos objetos, el objeto original no se ve afectado por la modificación en la copia. Esto demuestra que hemos creado una copia independiente del objeto original utilizando el operador spread.

Copia superficial vs. copia profunda

Hasta ahora, hemos hablado de copias superficiales. Sin embargo, en algunas situaciones, es necesario realizar una copia profunda, donde se clonan también los objetos internos. Para lograrlo, puedes utilizar bibliotecas como Lodash o implementar una función personalizada que recorra recursivamente el objeto y clone cada propiedad.

La clave para dominar la habilidad de clonar objetos en JavaScript es la práctica constante. Experimenta con diferentes técnicas y comprende cuándo es mejor utilizar una copia superficial o profunda según tus necesidades.

Ahora que tienes una comprensión básica de cómo clonar objetos en JavaScript, estás listo para explorar esta habilidad en profundidad. Recuerda que, en el desarrollo web, el conocimiento de JavaScript es esencial y dominar la clonación de objetos es una de las habilidades clave que te ayudarán a destacar en tu carrera.

Si estás emocionado por aprender más sobre JavaScript y muchas otras tecnologías de desarrollo web, te invitamos a unirte al Desarrollo Web Full Stack Bootcamp de KeepCoding. Al inscribirte en nuestro bootcamp, obtendrás acceso a un programa de formación intensiva que te preparará para una carrera en el sector tecnológico. Al finalizar el bootcamp, tendrás la oportunidad de convertirte en un profesional altamente demandado.

No pierdas esta oportunidad de cambiar tu vida y entrar en una industria en constante crecimiento. ¡Inscríbete hoy mismo y comienza tu viaje hacia una carrera exitosa en la tecnología!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado