Shared State El estado compartido es cualquier variable, objeto o espacio de memoria que existe en un ámbito compartido, o como propiedad de un objeto que se pasa entre ámbitos.
Orden en que llamo las funciones
Función pura
Inmutabilidad
Master the JavaScript Interview: What is Functional Programming?
Shared State significa que diferentes métodos trabajan a partir de una misma variable.
Hacer que variable no se mute globalmente, sino que la función cree su propia variable y retorne el resultado
Cuando evita el estado compartido, el tiempo y el orden de las llamadas a funciones no cambian el resultado de llamar a la función.
// Mutan directamente variable a
const a = {
value: 2
}
const addOne = () => a.value += 1
const timesTwo = () => a.value *= 2
timesTwo()
addOne()
console.log(a.value) // 5
//si llamo en orden diferente
addOne()
timesTwo()
console.log(a.value) // 6
// con Función pura
const addOne = b => Object.assign({},b, {value: b.value + 1})
const timesTwo = b => Object.assign({},b, {value: b.value * 2})
console.log(timesTwo(a)) //4
console.log(addOne(a)) //3
console.log(a.value) //2
//para el valor sumado Ejecutamos una función dentro de otra
console.log(addOne(timesTwo(a))) //5
<aside> 📌 SUMMARY: Evitar el estado compartido no mutando las variables con nuestras funciones. Usar funciones puras.
</aside>