Я просматривал исходный код здесь: http://js-dos.com/games/doom2.exe.html и заметил несколько вещей:
if (typeof Module === 'undefined')
{
Module = eval('(function() {try { return Module || {} } catch(e) { return {} }})()');
}
- Функция модуля определяется встроенным тегом script
- Далее он снова объявляется с
var
в другом встроенном теге, на этот раз он проверяет, существует ли модуль.
Мой вопрос:. В чем смысл объявления модуля с помощью функции self-invoking, если он попытается снова вернуть модуль? Разве это уже не доказано, что его нет? Почему бы просто не объявить модуль как {}
?