--- id: 587d7b8e367417b2b2512b5e title: Avoid Mutations and Side Effects Using Functional Programming localeTitle: Evite las mutaciones y los efectos secundarios utilizando la programación funcional challengeType: 1 --- ## Description
Si aún no lo ha resuelto, el problema en el desafío anterior fue con la llamada de splice en la función tabClose() . Desafortunadamente, el splice cambia la matriz original a la que se llama, por lo que la segunda llamada a esta usó una matriz modificada y dio resultados inesperados. Este es un pequeño ejemplo de un patrón mucho más grande: se llama una función en una variable, una matriz o un objeto, y la función cambia la variable o algo en el objeto. Uno de los principios básicos de la programación funcional es no cambiar las cosas. Los cambios conducen a errores. Es más fácil prevenir errores sabiendo que sus funciones no cambian nada, incluidos los argumentos de la función o cualquier variable global. El ejemplo anterior no tuvo operaciones complicadas, pero el método de splice cambió la matriz original y dio como resultado un error. Recuerde que en la programación funcional, cambiar o alterar las cosas se denomina mutation , y el resultado se denomina side effect . Una función, idealmente, debería ser una pure function , lo que significa que no causa ningún efecto secundario. Intentemos dominar esta disciplina y no alteremos ninguna variable u objeto en nuestro código.
## Instructions
Rellene el código del incrementer función para que devuelva el valor de la variable global fixedValue incrementado en uno.
## Tests
```yml tests: - text: Su incrementer funciones no debe cambiar el valor de fixedValue . testString: 'assert(fixedValue === 4, "Your function incrementer should not change the value of fixedValue.");' - text: Su función incrementer debe devolver un valor que sea mayor que el valor de valor fixedValue . testString: 'assert(newValue === 5, "Your incrementer function should return a value that is one larger than the fixedValue value.");' ```
## Challenge Seed
```js // the global variable var fixedValue = 4; function incrementer () { // Add your code below this line // Add your code above this line } var newValue = incrementer(); // Should equal 5 console.log(fixedValue); // Should print 4 ```
## Solution
```js // solution required ```