Come definire una funzione JavaScript Immediately Invoked Function Expression (IIFE)

In JavaScript il termine IIFE sta per Espressione di funzione immediatamente invocata, un'espressione di funzione che viene invocata immediatamente dopo la sua definizione

Pubblicato da ,
Ultima modifica

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".