define
n'est pas spécifique à RequireJS, c'est une partie de l' AMD spécification. Burke va noter que RequireJS ne pas mettre en œuvre exactement comment AMD précise, puisque AMD n'a pas vraiment de garder les navigateurs à l'esprit.
define
n'ont pas une fonction anonyme en elle. define
est une méthode disponible pour AMD fichiers JavaScript pour le chargement de leurs données. Les bibliothèques comme RequireJS de les rendre disponibles pour vous. La mise en œuvre spécifique n'est probablement pas utiles pour vous. Je vais donc aller au-delà de celle que vous avez fournie que c'est la façon la plus commune pour déclarer un module.
define(
[array]
, object
);
Tableau est une liste de modules qui dépend ce module. Il y a un 1 à 1 relation entre les modules et fichiers. Vous ne pouvez pas avoir plusieurs modules dans un fichier, ni des fichiers multiples pour un seul module.
L'objet est le module de définition. Cela peut être n'importe quoi, une structure ou une fonction qui renvoie une structure. Lisez la documentation sur RequireJS pour plus de détails.
Si l'objet est une fonction, les arguments passés à la fonction sont les modules listés comme des dépendances dans la première définir argument. Il est également important de noter que lorsque vous passez d'une fonction comme object
, il ne fonctionnera qu'une seule fois. Les méthodes et les propriétés créé sur cette instanciation peut être consulté à tout moment, cependant, peuvent être consultés par les autres modules de la liste de ce module comme une dépendance.
Bonne chance, je vous recommande de jouer avec cela, et en lisant les docs quand les choses ne faites pas de sens. RequireJS docs sont grands comme un démarrage rapide sur la façon AMD modules de travail.