freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-an.../functional-programming/pass-arguments-to-avoid-ext...

2.2 KiB

id title challengeType forumTopicId dashedName
587d7b8e367417b2b2512b5f Pasa argumentos para evitar la dependencia externa en una función 1 301234 pass-arguments-to-avoid-external-dependence-in-a-function

--description--

El último reto fue un paso más cerca de los principios de la programación funcional, pero todavía falta algo.

No alteramos el valor global de la variable, pero la función incrementer no funcionaría sin que la variable global fixedValue estuviera allí.

Otro principio de programación funcional es declarar siempre sus dependencias de forma explícita. Esto significa si una función depende de que una variable u objeto esté presente, después pasa esa variable u objeto directamente a la función como argumento.

Este principio tiene varias consecuencias positivas. La función es más fácil de probar, se sabe exactamente lo que necesita, y no dependerá de nada más en tu programa.

Esto puede darte más confianza cuando cambias, eliminas o agregas código nuevo. Sabrás lo que se puede o no se puede cambiar y, puedes ver dónde están los posibles trampas.

Finalmente, la función siempre produciría el mismo resultado para el mismo conjunto de entradas, sin importar qué parte del código la ejecute.

--instructions--

Actualicemos la función incrementer para declarar claramente sus dependencias.

Escribe la función incrementer para que reciba un argumento, y luego devuelva un resultado después de aumentar el valor en uno.

--hints--

Tu función incrementer no debe cambiar el valor de fixedValue (que es 4).

assert(fixedValue === 4);

Tu función incrementer debe recibir un argumento.

assert(incrementer.length === 1);

La función incrementer debe devolver el valor de fixedValue más uno.

const __newValue = incrementer(fixedValue);
assert(__newValue === 5);

--seed--

--seed-contents--

// The global variable
var fixedValue = 4;

// Only change code below this line
function incrementer () {


  // Only change code above this line
}

--solutions--

// The global variable
var fixedValue = 4;

// Only change code below this line
function incrementer (fixedValue) {
  return fixedValue + 1;

  // Only change code above this line
}