La funzione JavaScript IIFE è un modello di progettazione molto noto e anche molto usato nella programmazione moderna, è anche nota come funzione "Self-Executing Anonymous Function " cioè funzione anonima auto-eseguita.
Esistono diversi tipi di sintassi
Codice JavaScript
// sintassi 1
(function() {
/* code */
})();
// sintassi 2
(function() {
/* code */
}());
// sintassi 3
(() => {
/* code */
})();
La funzione JavaScript IIFE è costituita da due parti fondamentali, la prima è la funzione anonima, in particolare ogni variabile che viene definita la suo interno non è accessibile dall'esterno della funzione stessa, racchiudendo l'espressione della funzione tra parentesi forza il motore JavaScript a riconoscere il blocco function(){} come espressione di una funzione e non come l'inizio di una dichiarazione di funzione, la seconda parte è il closure, cioè passando degli argomenti alla funzione anonima in esecuzione possiamo definire le variabili nella chiusura (closure) creata dalla funzione, in particolare una chiusura è una funzione che chiude le variabili dall'esecuzione corrente all'interno del corpo di una funzione.
Faccio qualche esempio
Codice JavaScript
// esempio 1
(function()) {
var text = "Lorem Ipsum..";
}());
// esempio 2
(function(a, b)) {
var c = a + " " + b;
return c;
}("Hallo", "World"));
nell' esempio 1 la variabile text definita all'interno della funzione non sarà accessibile dall'esterno, nell'esempio 2 la funzione ritornerà come valore "Hello World".