IIFE просто разделяет функцию и скрывает переменную msg
, чтобы не «загрязнять» глобальное пространство имен. В действительности, просто делайте это просто и делайте, как показано ниже, если вы не создаете сайт за миллиард долларов.
var msg = "later dude";
window.onunload = function(msg){
alert( msg );
};
Вы можете присвоить пространству имен ваше свойство msg
, используя Шаблон модуля раскрытия , например:
var myScript = (function() {
var pub = {};
//myscript.msg
pub.msg = "later dude";
window.onunload = function(msg) {
alert(msg);
};
//API
return pub;
}());
Вы можете настроить DEVPATH для принудительной загрузки сборки, см. текст ссылки
Это не отвечает на ваш вопрос, поскольку он предназначен только для использования в разработке и даже в этом случае не рекомендуется поскольку он не отражает производственное использование. Однако я подумал, что все равно поделюсь им, так как это полезно знать.