Arthur Asatryan: Я лишь уточнил, что сигнал о загрузке и событие DOMContentLoaded не связаны между собой (кроме того, что второе наступит всегда раньше, чем закончится первый).
Ну, и чтобы было понятно, почему alert не нужен там, где не нужен — есть консоль (не говоря уже про потерю фокуса и прочие гадости).
Сигнал о продолжении загрузки прекращается после наступления события window.load. Естественно, что событие DOMContentLoaded наступает до загрузки документа. Как уже сказано, alert — настоящее модальное окно, блокирующее работу парсера и всевозможных интерпретаторов.
Так что вполне очевидно, почему до наступления window.load мы видим сигнал о продолжении загрузки.
Особенно смешно слышать такие замечания от человека, спокойно использующего атрибуты событий и навешивающего обработчики всплывающих событий непосредственно на элементы, используя траверс.
SelenIT2: Кстати, меня всегда интересовал вопрос — а что не ввести H для автоматического ранжирования уровня заголовков? Зачем обязательно вручную мучится?..
copal: У вас во всех примерах в переменной Module находится функция. То есть это — конструктор.
В первом примере от комментария ваши слова:
обратите внимания, что функция не самовызывающая
А вот если бы был вызов функции, вот тогда в Module сохранилось бы то, что и нужно — объект. А у вас во всех примерах для создания модуля нужно создать инстанс Module, вызывая его var xxx = new Module();
Вот и выходит, что у вас Module — не модуль.
Первый пример — конструктор. Причём как-то странно созданный — и FE, и круглые скобки зачем-то...
И второй пример — конструктор. Кстати, если присваивать значение ссылки на функцию, её не нужно оборачивать в скобки — это и так значение. Относится и к IIFE.