Parliamo

project-cherry.dev

Fondamenta10 min

Funzioni e Closures

Dichiarazioni di funzione, arrow functions e il meccanismo delle closures spiegato con esempi pratici.

Funzioni e Closures

Le funzioni sono i mattoni fondamentali di JavaScript. Permettono di raggruppare logica riutilizzabile e sono alla base di concetti avanzati come le closures.

Tipi di funzione

javascript
// Dichiarazione classica
function saluta(nome) {
  return "Ciao, " + nome;
}

// Espressione di funzione
const moltiplica = function(a, b) {
  return a * b;
};

// Arrow function (ES6+)
const somma = (a, b) => a + b;

Le arrow functions hanno una sintassi compatta e non creano un proprio this — ereditano quello del contesto esterno.

Parametri di default

javascript
function creaUtente(nome, ruolo = "utente") {
  return { nome, ruolo };
}

creaUtente("Luca");           // { nome: "Luca", ruolo: "utente" }
creaUtente("Anna", "admin");  // { nome: "Anna", ruolo: "admin" }

Closures

Una closure si verifica quando una funzione interna "ricorda" le variabili della funzione esterna, anche dopo che quest'ultima ha terminato l'esecuzione.

javascript
function creaContatore() {
  let conteggio = 0;

  return {
    incrementa: () => ++conteggio,
    valore: () => conteggio,
  };
}

const counter = creaContatore();
counter.incrementa(); // 1
counter.incrementa(); // 2
counter.valore();     // 2

Le closures sono il fondamento di pattern come il module pattern e la data privacy in JavaScript.