Izvoz spremenljivk in funkcij v modulih s pomočjo zaprtij v JavaScript
Včasih je potrebno narediti tako, da so nekatere spremenljivke in funkcije modula dostopne zunaj. Poglejmo, kako se to naredi. Recimo, da imamo naslednji modul:
;(function() {
let str = 'spremenljivka modula';
function func() {
alert('funkcija modula');
}
})();
Izvažajmo našo funkcijo func.
Za to jo zapišimo v lastnost vgrajenega
objekta brskalnika window:
;(function() {
let str = 'spremenljivka modula';
function func() {
alert('funkcija modula');
}
window.func = func;
})();
Zdaj lahko pokličemo našo funkcijo zunaj modula:
;(function() {
let str = 'spremenljivka modula';
function func() {
alert('funkcija modula');
}
window.func = func;
})();
window.func(); // izpiše 'funkcija modula'
Poleg tega ni nujno, da funkcijo kličemo
kot lastnost objekta window:
;(function() {
let str = 'spremenljivka modula';
function func() {
alert('funkcija modula');
}
window.func = func;
})();
func(); // izpiše 'funkcija modula'
Podan je naslednji modul:
;(function() {
let str1 = 'spremenljivka modula';
let str2 = 'spremenljivka modula';
let str3 = 'spremenljivka modula';
function func1() {
alert('funkcija modula');
}
function func2() {
alert('funkcija modula');
}
function func3() {
alert('funkcija modula');
}
})();
Izvažajte eno od spremenljivk in dve poljubni funkciji.