З вихідного коду Requ.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()
Функція приймає два додаткові параметри (рядки , які представляють собою ідентифікатор модуля і масив необхідних модулів) і один необхідний параметр (метод фабрики).
Повернення заводського методу ОБОВ'ЯЗКОВО поверне реалізацію для вашого модуля (так само, як це робить Модуль Шаблон ).
require()
Функція не повинна повертати реалізацію нового модуля.
Використовуючи define()
вас, ви запитуєте щось на кшталт "запустіть функцію, яку я передаю як параметр, і призначте все, що повертається до ідентифікатора, який я передаю, але перед цим перевірте, чи завантажуються ці залежності" .
Використовуючи, require()
ви говорите щось на кшталт "функція, яку я передаю, має такі залежності, перевірте, чи завантажуються ці залежності перед її запуском" .
require()
Функція , де ви використовуєте певні модулі для того, щоб бути впевненим , що модулі визначені, але не визначення нових модулів там.