DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #169: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Avanzado

const libro = {
  isbn: "1265-4985-466",
  titulo: "Los miserables",
  datosEditorial: {
    nombre: "Santillana",
    "año publicacion": 2016
  }
};

const copiaLibro = structuredClone(libro);
copiaLibro.datosEditorial["año publicacion"] = 2011;

console.log(libro.datosEditorial["año publicacion"]);
console.log(copiaLibro.datosEditorial["año publicacion"]);
Enter fullscreen mode Exit fullscreen mode

A. 2016, 2011
B. 2016, 2016
C. 2011, 2011
D. Uncaught ReferenceError: structuredClone is not defined

Respuesta en el primer comentario.


Oldest comments (5)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
A. 2016, 2011

structuredClone es una nueva API de JavaScript que permite de forma nativa realizar copias profundas de un objeto.

El objeto libro no sufre mutación alguna puesto que ahora realizamos una copia a profundidad de todas sus propiedades, por ende el único objeto que cambia es la copia en si.

img

Collapse
 
chema profile image
José María CL

wow! entonces podemos despedirnos de lodash.cloneDeep?

Collapse
 
joolsmcfly profile image
Julien Dephix

For simple structures like in the example I used the following:

const copiaLibro = JSON.parse(JSON.stringify(libro));
Enter fullscreen mode Exit fullscreen mode

Quick and dirty, no need for lodash.

Thread Thread
 
chema profile image
José María CL

nice... but it has a little issue with Circular References as far as I remember

Thread Thread
 
joolsmcfly profile image
Julien Dephix

Hm, never had the case myself.

You probably had a prototype somewhere?