Estado compartido o shared state
Clase 11 de 23 • Curso de Programación Funcional en JavaScript por Bedu
Contenido del curso
Funciones
- 4

Funciones Algebraicas y Funciones de JavaScript
02:49 min - 5

Qué son funciones puras
02:45 min - 6

Proyecto: Obtener el valor de los inputs
04:00 min - 7

Objetos y Tipos de Memoria en JavaScript
04:31 min - 8

Copiar y modificar objetos en JavaScript
09:49 min - 9

Utilizando inmutabilidad en nuestras funciones
03:49 min - 10

Proyecto: Validar inputs
07:38 min
Estado compartido en funciones
Composición de funciones, Closures y Currying
Higher Order Functions
Bonus: Declarative Programming
Conclusiones
Resumen
Shared State significa que diferentes métodos trabajan a partir de una misma variable. y, así como aprendimos en clases anteriores, cuando modificamos variables con el mismo objeto de referencia podemos encontrarnos con algunos problemas y obtener resultados inesperados a pesar de ejecutar el mismo código y recibir los mismos parámetros:
// Intento #1 const a = { value: 2 } const addOne = () => a.value += 1 const timesTwo = () => a.value *= 2 addOne() timesTwo() console.log(a.value) // 6 // Sin embargo, si ejecutamos las mismas funciones en orden invertido // obtenemos resultados diferentes timesTwo() addOne() console.log(a.value) // 5 !??
Para resolver este tipo de problemas debemos utilizar la programación funcional, en vez de modificar la variable original, nuestras funciones deben copiar y modificar sus argumentos:
const b = { value: 2 } const addOne = x => Object.assign({}, x, { value: x.value + 1 }) const timesTwo = x => Object.assign({}, x, { value: x.value * 2 }) addOne(b) timesTwo(b) // El resultado siempre es el mismo a pesar de // ejecutar las funciones en orden diferente timesTwo(b) addOne(b) console.log(b.value)