Експорт на променливи и функции в модули чрез затваряния в 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('функция на модула');
}
})();
Експортирайте една от променливите и две произволни функции.