я просматривал исходный код здесь: http://js-dos.com/games/doom2.exe.html и заметил несколько вещей:Какова цель этого условного условного выражения?
if (typeof Module === 'undefined')
{
Module = eval('(function() {try { return Module || {} } catch(e) { return {} }})()');
}
- Функция модуля определяются с помощью встроенного сценария тега
- Это позже снова объявлено с
var
в другом инлайн тег, на этот раз он проверяет, существует ли модуль.
Моим вопрос: Какой смысл объявлять модуль с функцией самостоятельной вызывающей, если это будет только попытаться вернуть модуль снова? Разве это уже не доказано, что его нет? Почему бы просто не объявить модуль как {}
?
Этот код находится в github в проекте emscripten. Он был добавлен в эту фиксацию: https://github.com/kripken/emscripten/commit/22d510338239c1cf33136392c77a9b3d7d2ce2bc. Они отошли от явного объявления в оператор eval, но коммит commit isn; t ясно почему! Я добавил emscripten в качестве тега, тогда кто-то из проекта или кто его знает, может заметить и помочь. – sifriday