Saltar al contenido

Copias y referencias

JavaScript · Unidad 15: Inmutabilidad

Ya sabes que = no copia un objeto: le pone otro nombre. Y que { ...obj } sí arma uno nuevo, pero solo del primer nivel.

A eso se le llama copia superficial: si adentro hay otro objeto, la copia y el original comparten ese objeto de adentro.

const a = { n: 1, sub: { m: 2 } };
const b = { ...a };
b.n = 9;
b.sub.m = 9;
console.log(a.n, a.sub.m);

Imprime

1 9

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    El pedido se copia y se le cambian dos cosas. ¿Qué imprime?

  2. 2. Opción múltiple

    usuario guarda nombre y dir, y dir es otro objeto. ¿Qué crea { ...usuario }?

  3. 3. Completa el código

    Completa para que subirle los puntos a la copia no le suba los puntos a Leo.

  4. 4. Completa el código

    Completa para que la copia traiga objetos nuevos, no los mismos.

  5. 5. Predice la salida

    Dos copias de la misma lista, hechas de distinta forma. ¿Qué imprime?

  6. 6. Encuentra el bug

    r debería ser una copia independiente de b: al anotar a Leo en r, la lista de b debería seguir con Ana sola. ¿Qué línea tiene el error?

  7. 7. Predice la salida

    La ficha se copia con el viaje por JSON. ¿Qué imprime?

  8. 8. Opción múltiple

    ¿Cuándo no sirve copiar con JSON.parse(JSON.stringify(x))?

  9. 9. Ordena las líneas

    Ordena el programa que copia la receta a fondo y le agrega ajo solo a la copia.

  10. 10. Predice la salida

    La función reparte un bono. ¿Qué imprime?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →