Esportazione di variabili e funzioni nei moduli tramite closure in JavaScript
A volte è necessario che alcune variabili e funzioni del modulo siano accessibili dall'esterno. Vediamo come si fa. Supponiamo di avere il seguente modulo:
;(function() {
let str = 'variabile del modulo';
function func() {
alert('funzione del modulo');
}
})();
Esportiamo la nostra funzione func.
Per farlo, la assegniamo a una proprietà dell'oggetto
integrato nel browser window:
;(function() {
let str = 'variabile del modulo';
function func() {
alert('funzione del modulo');
}
window.func = func;
})();
Ora possiamo chiamare la nostra funzione dall'esterno del modulo:
;(function() {
let str = 'variabile del modulo';
function func() {
alert('funzione del modulo');
}
window.func = func;
})();
window.func(); // visualizzerà 'funzione del modulo'
Inoltre, non è obbligatorio chiamare la funzione
come proprietà dell'oggetto window:
;(function() {
let str = 'variabile del modulo';
function func() {
alert('funzione del modulo');
}
window.func = func;
})();
func(); // visualizzerà 'funzione del modulo'
Dato il seguente modulo:
;(function() {
let str1 = 'variabile del modulo';
let str2 = 'variabile del modulo';
let str3 = 'variabile del modulo';
function func1() {
alert('funzione del modulo');
}
function func2() {
alert('funzione del modulo');
}
function func3() {
alert('funzione del modulo');
}
})();
Esporta all'esterno una delle variabili e due funzioni a scelta.