Mutable vs Inmutable
How to handle immutability in JavaScript
// Con mutaciones
const addToList = (list, item, quantity) => {
list.push({ // modificamos el argumento `list`
item,
quantity
})
return list
}
// Sin mutaciones (inmutabilidad)
const addToList = (list, item, quantity) => {
const newList = JSON.parse(JSON.stringify(list))
newList.push({ // modificamos la copia del argumento
item,
quantity
})
return newList
}
<aside> 💡 En JavaScript, es importante no confundir const, con inmutabilidad. const crea un enlace de nombre de variable que no se puede reasignar después de la creación. const no crea objetos inmutables. No puede cambiar el objeto al que se refiere el enlace, pero aún puede cambiar las propiedades del objeto, lo que significa que los enlaces creados con const son mutables, no inmutables.
</aside>
<aside> 📌 SUMMARY: No mutar las variables. Generar copia primero.
</aside>