Eksportering av variabler og funksjoner i moduler via closures i JavaScript
Noen ganger er det nødvendig å gjøre at visse variabler og funksjoner i en modul er tilgjengelige utefra. La oss se på hvordan dette gjøres. La oss si at vi har følgende modul:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunksjon');
}
})();
La oss eksportere funksjonen vår func.
For å gjøre dette, skriver vi den til en egenskap i det innebygde
browserobjektet window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunksjon');
}
window.func = func;
})();
Nå kan vi kalle funksjonen vår utenfra modulen:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunksjon');
}
window.func = func;
})();
window.func(); // vil vise 'modulfunksjon'
Det er ikke nødvendig å kalle funksjonen
som en egenskap av objektet window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunksjon');
}
window.func = func;
})();
func(); // vil vise 'modulfunksjon'
Følgende modul er gitt:
;(function() {
let str1 = 'modulvariabel';
let str2 = 'modulvariabel';
let str3 = 'modulvariabel';
function func1() {
alert('modulfunksjon');
}
function func2() {
alert('modulfunksjon');
}
function func3() {
alert('modulfunksjon');
}
})();
Eksporter én av variablene og to valgfrie funksjoner ut.