Le funzioni in JavaScript

Funzioni annidate

Funzioni annidate in JavaScript
Funzioni annidate in JavaScript

In JavaScript è possibile dichiarare funzioni all’interno di altre funzioni.

Una funzione è visibile soltanto all’interno del blocco funzione in cui è dichiarata.

function sommaQuadrati(a, b) {
  function quadrato(x) {
     return x * x;
  }
  return quadrato(a) + quadrato(b);
}

console.log(sommaQuadrati(3, 4)); /// 25
console.log(quadrato(5)); /// Errore

Questo particolare costrutto permette di realizzare le closure.

Realizzare una closure

Una closure è una funzione annidata che mantiene un riferimento alle variabili della funzione che la contiene anche dopo che la funzione esterna ha terminato il suo compito.

function salutami(nome) {
   var saluto = "Buongiorno";
   function stampaSaluto() {
       console.log(saluto + ", " + nome);
   }
   return stampaSaluto;
}

/// Richiamo la funzione passando la stringa "Daniele" come parametro.
var salutaDaniele = salutami("Daniele");

/// La stringa "Daniele" rimane definita anche per le successive chiamate.
salutaDaniele(); /// "Buongiorno, Daniele"

Questo articolo è parte della collana JavaScript: Guida di riferimento per aspiranti web developer.

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.