Мое понимание модулей AMD (используя, например, RequireJs или curl.js):
require()
используется для асинхронной загрузки разных модулей и при загрузке выполняется обратный вызов fn.
И чтобы определить модуль, у вас будут отдельные скрипты, которые используют define()
Но я видел, что некоторые модули используют require()
внутри своего определения функции, например.
define([a, b, c], function(i, ii, iii){
require([d, e, f], function(d, e, f) {
// do some stuff with these require()'d dependancies
})
/* rest of the code for this module */
})
Но я нахожу это запутанным, потому что я бы подумал, что если модуль имеет зависимости, то они должны быть переданы через главную функцию define([dependancies], fnDefinition)
, а не внутри нее через require()
, как это делает вышеприведенный пример.
Есть ли основания для этого?