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(); // 2Le closures sono il fondamento di pattern come il module pattern e la data privacy in JavaScript.