Kintamųjų ir funkcijų eksportavimas moduliuose per uždarinius JavaScript
Kartais reikia padaryti taip, kad kai kurie modulio kintamieji ir funkcijos būtų prieinami išorėje. Pažiūrėkime, kaip tai daroma. Tarkime, kad turime šį modulį:
;(function() {
let str = 'modulio kintamasis';
function func() {
alert('modulio funkcija');
}
})();
Eksportuokime mūsų funkciją func.
Norėdami tai padaryti, įrašykime ją kaip savybę į įmontuotą
naršyklės objektą window:
;(function() {
let str = 'modulio kintamasis';
function func() {
alert('modulio funkcija');
}
window.func = func;
})();
Dabar galime iškviesti mūsų funkciją išorėje modulio:
;(function() {
let str = 'modulio kintamasis';
function func() {
alert('modulio funkcija');
}
window.func = func;
})();
window.func(); // išves 'modulio funkcija'
Be to, nebūtinai reikia kviesti funkcijos
kaip objekto window savybę:
;(function() {
let str = 'modulio kintamasis';
function func() {
alert('modulio funkcija');
}
window.func = func;
})();
func(); // išves 'modulio funkcija'
Duotas šis modulis:
;(function() {
let str1 = 'modulio kintamasis';
let str2 = 'modulio kintamasis';
let str3 = 'modulio kintamasis';
function func1() {
alert('modulio funkcija');
}
function func2() {
alert('modulio funkcija');
}
function func3() {
alert('modulio funkcija');
}
})();
Eksportuokite į išorę vieną iš kintamųjų ir dvi bet kurias funkcijas.