Первый случай относится к CommonJS , который наиболее заметно используется в Node.js и является разновидностью AMD ( Определение асинхронного модуля ).Модуль - это файл JavaScript, который выполняется с определенным глобальным объектом модуля.Независимо от того, что для этого файла установлено значение module.exports
, оно будет доступно для других частей приложения, а все остальное в файле останется закрытым только для этого модуля.Вот хорошая запись в блоге об этом.
Второй - для другого варианта AMD, который чаще всего реализуется с requirejs .Эта идея очень похожа на CommonJs, но чаще встречается в браузере.Фреймворк Dojo является хорошим примером фреймворка на основе amd.Сообщество Jquery также сильно отстает.define
сообщает системе amd, что вы предоставляете ей модуль, который остальная часть приложения может использовать, используя require
.
Финальная версия - это распространенный сценарий запуска в браузере с простым jane.this
, скорее всего, DOMWindow, и, следовательно, объект хранилища становится глобальным для всей веб-страницы.