Del código fuente require.js (línea 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.
*/
La define()
función acepta dos parámetros opcionales (una cadena que representa una ID de módulo y una matriz de módulos requeridos) y un parámetro requerido (un método de fábrica).
El retorno del método de fábrica DEBE devolver la implementación para su módulo (de la misma manera que lo hace el Patrón de Módulo ).
La require()
función no tiene que devolver la implementación de un nuevo módulo.
Al define()
usarlo, está preguntando algo como "ejecutar la función que estoy pasando como parámetro y asignar lo que sea que regrese a la ID que estoy pasando pero, antes, verifique que estas dependencias estén cargadas" .
Usando require()
usted está diciendo algo como "la función que paso tiene las siguientes dependencias, verifique que estas dependencias estén cargadas antes de ejecutarlo" .
La require()
función es donde utiliza sus módulos definidos, para asegurarse de que los módulos están definidos, pero no está definiendo nuevos módulos allí.