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

2.2 KiB

id title challengeType forumTopicId dashedName
587d7b8e367417b2b2512b5f Passare gli argomenti per evitare la dipendenza esterna in una funzione 1 301234 pass-arguments-to-avoid-external-dependence-in-a-function

--description--

L'ultima sfida è stata un passo più vicino ai principi della programmazione funzionale, ma manca ancora qualcosa.

Non abbiamo modificato il valore globale della variabile, ma la funzione incrementer non avrebbe funzionato senza che la variabile globale fixedValue fosse lì.

Un altro principio della programmazione funzionale è quello di dichiarare sempre esplicitamente le dipendenze. Questo significa che se una funzione dipende dalla presenza di una variabile o di un oggetto, devi passare quella variabile o l'oggetto direttamente nella funzione come argomento.

Da questo principio derivano diverse buone conseguenze. La funzione è più facile da testare, si sa esattamente che input prende, e non dipenderà da nient'altro nel tuo programma.

Questo può darti più fiducia quando alteri, rimuovi o aggiungi del codice. Saprai cosa puoi o non puoi cambiare e potrai vedere dove sono le potenziali trappole.

Infine, la funzione produrrà sempre lo stesso output per lo stesso insieme di input, indipendentemente da quale parte del codice lo esegue.

--instructions--

Aggiorniamo la funzione incrementer per dichiarare chiaramente le sue dipendenze.

Scrivi la funzione incrementer in modo che richieda un argomento, quindi restituisca un risultato dopo aver aumentato il valore di uno.

--hints--

La tua funzione incrementer non dovrebbe cambiare il valore di fixedValue (che è 4).

assert(fixedValue === 4);

La tua funzione incrementer dovrebbe prendere un argomento.

assert(incrementer.length === 1);

La tua funzione incrementer dovrebbe restituire il valore di fixedValue aumentato di una unità.

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

--seed--

--seed-contents--

// The global variable
let fixedValue = 4;

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


  // Only change code above this line
}

--solutions--

let fixedValue = 4;

function incrementer(fixedValue) {
  return fixedValue + 1;
}