Извоз променљивих и функција у модулима преко затварања у JavaScript-у
Понекад је потребно да се учини да неке променљиве и функције модула буду доступне споља. Погледајмо како се то ради. Претпоставимо да имамо следећи модул:
;(function() {
let str = 'променљива модула';
function func() {
alert('функција модула');
}
})();
Хајде да извеземо нашу функцију func.
За то ћемо је уписати као својство уграђеног
у браузер објекта window:
;(function() {
let str = 'променљива модула';
function func() {
alert('функција модула');
}
window.func = func;
})();
Сада можемо позвати нашу функцију споља модула:
;(function() {
let str = 'променљива модула';
function func() {
alert('функција модула');
}
window.func = func;
})();
window.func(); // исписаће 'функција модула'
При томе није обавезно позивати функцију
као својство објекта window:
;(function() {
let str = 'променљива модула';
function func() {
alert('функција модула');
}
window.func = func;
})();
func(); // исписаће 'функција модула'
Дат је следећи модул:
;(function() {
let str1 = 'променљива модула';
let str2 = 'променљива модула';
let str3 = 'променљива модула';
function func1() {
alert('функција модула');
}
function func2() {
alert('функција модула');
}
function func3() {
alert('функција модула');
}
})();
Извезете један од променљивих и било које две функције.