Eksport af variabler og funktioner i moduler via closures i JavaScript
Sommetider er det nødvendigt at gøre det sådan, at visse variabler og funktioner i modulet er tilgængelige udefra. Lad os se på, hvordan det gøres. Lad os sige, at vi har følgende modul:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
})();
Lad os eksportere vores funktion func.
For at gøre dette skal vi skrive den til en egenskab i det indbyggede
browserobjekt window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
Nu kan vi kalde vores funktion udefra modulet:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
window.func(); // vil udskrive 'modulfunktion'
Det er ikke nødvendigt at kalde funktionen
som en egenskab af objektet window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
func(); // vil udskrive 'modulfunktion'
Følgende modul er givet:
;(function() {
let str1 = 'modulvariabel';
let str2 = 'modulvariabel';
let str3 = 'modulvariabel';
function func1() {
alert('modulfunktion');
}
function func2() {
alert('modulfunktion');
}
function func3() {
alert('modulfunktion');
}
})();
Eksporter en af variablerne og to vilkårlige funktioner til udsiden.