#javascript #closures
#javascript #замыкания
Вопрос:
Есть ли способ сделать функцию, созданную внутри замыкания, доступной вне замыкания? Я работаю с приложением AIR, и мне нужно предоставить доступ к specialFunction()
AIR, но закрытие не позволяет этому произойти.
(function () {
... a bunch of code ..
function specialFunction() {
.. some code
}
}());
Ответ №1:
Вы можете назначить функцию глобальному объекту (который находится window
в браузерах):
(function () {
... a bunch of code ..
window.specialFuncton = function() {
.. some code
}
}());
Это делает ее доступной во всем мире.
Если приложению AIR также необходим доступ к другим функциям, то лучше создать пространство имен для этих функций:
var funcs = {}; // global
(function () {
... a bunch of code ..
funcs.specialFuncton = function() {
.. some code
}
}());