Moduli tramite chiusure in JavaScript

Il problema descritto sopra è tipico di qualsiasi linguaggio di programmazione. Come soluzione si utilizzano i cosiddetti moduli.

Un modulo è una struttura realizzata in modo che le variabili e le funzioni di questa struttura siano visibili solo al suo interno e non interferiscano con niente all'esterno.

In JavaScript esistono diversi tipi di moduli. I moduli tramite chiusure più semplici sono creati utilizzando una funzione richiamata immediatamente (IIFE), in questo modo:

javascript;(function() {
  // codice del modulo qui
})();

Le variabili e le funzioni create in un modulo di questo tipo non saranno visibili dall'esterno di questo modulo:

javascript;(function() {
  let str = 'variabile del modulo';
  
  function func() {
    alert('funzione del modulo');
  }
})();

// Qui le variabili e le funzioni del modulo non sono accessibili:
alert(str);
alert(func);