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.


Top 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?