Funzioni anonime in JavaScript

Le funzioni anonime, anche conosciute come funzioni senza nome, sono uno strumento potente in JavaScript per creare codice flessibile e modulare. A differenza delle funzioni tradizionali che hanno un nome specifico, le funzioni anonime possono essere definite senza un nome e assegnate a variabili o passate come argomenti ad altre funzioni.

Definizione di funzioni anonime in JavaScript

In JavaScript, possiamo definire una funzione anonima utilizzando la parola chiave function seguita da parentesi tonde (). Questa definizione non include un nome per la funzione, rendendola anonima.

let saluto = function() {
	console.log("Ciao, benvenuto!");
};

Le funzioni anonime offrono diversi vantaggi, inclusi:

  • Riduzione dell'inquinamento del namespace: essendo definite senza un nome, le funzioni anonime non creano variabili globali, aiutando a mantenere il namespace pulito.
  • Codice modulare: le funzioni anonime possono essere utilizzate per creare moduli di codice indipendenti che possono essere facilmente riutilizzati.
  • Assegnazione dinamica: le funzioni anonime possono essere assegnate dinamicamente a variabili e invocate in base a determinate condizioni o eventi.

Assegnamento di funzioni anonime a variabili

Le funzioni anonime possono essere assegnate a variabili, rendendo la funzione disponibile per l'invocazione tramite il nome della variabile.

let saluto = function() {
	console.log("Ciao, benvenuto!");
};

saluto(); // Stampa: Ciao, benvenuto!

Funzioni anonime e callback

Un uso comune delle funzioni anonime è come callback, ovvero funzioni passate come argomenti ad altre funzioni per essere eseguite dopo un determinato evento o processo.

function eseguiOperazione(a, b, callback) {
	let risultato = a + b;
	callback(risultato);
}

eseguiOperazione(5, 3, function(risultato) {
	console.log(`Il risultato dell'operazione è: ${risultato}`);
});
// Stampa: Il risultato dell'operazione è: 8

Funzioni anonime IIFE

Le IIFE (Immediately Invoked Function Expression) sono funzioni anonime invocate immediatamente dopo la loro definizione. Sono utilizzate per creare uno scope isolato per evitare la collisione di variabili globali.

(function() {
	let nome = "Alice";
	console.log(`Ciao, ${nome}!`);
})();
// Stampa: Ciao, Alice!