Obtuve la salida 5 pero asumí 3. ¿Cuál es la lógica detrás y cómo puedo hacer la salida 3?
const obj = { a: 1, b: 2, c: { p: 3 } } const obj1 = { ...obj} obj.cp = 5 console.log(obj1.cp)Lo anterior solo clona el primer nivel, por lo que cambiar el atributo profundo de obj cambiará la referencia en obj1
const obj = { a: 1, b: 2, c: { p: 3 } }; const obj1 = { ...obj, c: {...obj.c} }; obj.cp = 5; console.log(obj1.cp);obj se extendió a obj1 pero el objeto en la propiedad c permanece igual, por ejemplo, c es el mismo objeto. Puede clonar profundamente un objeto como este
const obj1 = JSON.parse(JSON.stringify(obj))