Exportera variabler och funktioner i moduler genom closures i JavaScript
Ibland behöver man göra så att vissa variabler och funktioner i modulen är tillgängliga utifrån. Låt oss se hur detta görs. Anta att vi har följande modul:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
})();
Låt oss exportera vår funktion func.
För att göra detta, låt oss tilldela den som ett egenskap
på det inbyggda webbläsarobjektet window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
Nu kan vi anropa vår funktion utifrån modulen:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
window.func(); // skriver ut 'modulfunktion'
Det är inte nödvändigt att anropa funktionen
som en egenskap av objektet window:
;(function() {
let str = 'modulvariabel';
function func() {
alert('modulfunktion');
}
window.func = func;
})();
func(); // skriver ut 'modulfunktion'
Följande modul är given:
;(function() {
let str1 = 'modulvariabel';
let str2 = 'modulvariabel';
let str3 = 'modulvariabel';
function func1() {
alert('modulfunktion');
}
function func2() {
alert('modulfunktion');
}
function func3() {
alert('modulfunktion');
}
})();
Exportera en av variablerna och två valfria funktioner utåt.