define
nie jest specyficzne dla RequireJS, jest częścią AMD specification. Burke zauważy, że RequireJS nie implementuje dokładnie tego, jak AMD to określa, ponieważ AMD tak naprawdę nie myślało o przeglądarkach.
define
nie ma funkcji anonimowej. define
to metoda udostępniana plikom JavaScript opartym na AMD do wczytywania ich danych. Biblioteki takie jak RequireJS sprawiają, że jest to dostępne. Konkretna implementacja prawdopodobnie nie jest dla ciebie cenna. Przejdę więc do tego, który podałeś, ponieważ jest to najczęstszy sposób deklarowania modułu.
define(
[array]
, object
);
Array jest lista modułów, że ten moduł zależy. Między modułami i plikami istnieje zależność 1: 1. Nie możesz mieć wielu modułów w pliku ani wielu plików dla jednego modułu.
Obiekt to definiowany moduł. Może to być wszystko, struktura lub funkcja, która zwraca strukturę. Przeczytaj dokumentację na temat RequireJS, aby uzyskać więcej informacji.
Jeśli obiekt jest funkcją, argumenty przekazane do funkcji są modułami wymienionymi jako zależności w pierwszym zdefiniującym argumencie. Ważne jest również, aby pamiętać, że gdy przejdziesz funkcję jako object
, uruchomi się tylko jeden raz. Dostęp do metod lub właściwości utworzonych w tym jednym wystąpieniu można uzyskać w dowolnym momencie, a następnie można uzyskać do nich dostęp za pomocą innych modułów, które wymieniają ten moduł jako zależność.
Powodzenia, polecam bawić się z tym i czytać dokumenty, gdy coś nie ma sensu. Dokumenty RequiJS są świetne jako szybki start na temat działania modułów AMD.