Из исходного файла require.js (строка 1902):
/**
* The function that handles definitions of modules. Differs from
* require() in that a string for the module should be the first argument,
* and the function to execute after dependencies are loaded should
* return a value to define the module corresponding to the first argument's
* name.
*/
Функция define()
принимает два необязательных параметра (строку, которая представляетидентификатор модуля и массив необходимых модулей) и один обязательный параметр (фабричный метод).
Возвращение фабричного метода MUST возвращает реализацию для вашего модуля (таким же образом*
Функция require()
не должна возвращать реализацию нового модуля.
Использованиеdefine()
вы спрашиваете что-то вроде «запустите функцию, которую я передаю в качестве параметра, и присвойте все возвращаемые значения идентификатору, который я передаю, но, прежде, проверьте, загружены ли эти зависимости».
Используя require()
вы говорите что-то вроде «переданная мне функция имеет следующие зависимости, убедитесь, что эти зависимости загружены перед ее запуском» .
require()
*Функция 1038 * - это место, где вы используете свои определенные модули, чтобы быть уверенными, что модули определены, но вы не определяете новые модули там.