In meinem letzten Post habe ich gezeigt wie man per requirejs Javascript Dateien nachladen kann. Damit man aber noch mehr Ordnung in seine Javascript-Struktur bekommt, kann man anstatt loser Funktionssammlungen in Dateien auch Javascript-Module definieren. In Verwendung mit requirejs empfiehlt sich hier das AMD Module Pattern (Asynchronous Module Definition).
Module ermöglichen in der Software-Entwicklung die wiederverwendbarbeit von Software-Funktionen. Module können diverse Funktionen beinhalten und bieten Schnittstellen für andere Module um z.B. Funktionen aufzurufen. Auch ist es möglich Abhängigkeiten zu definieren, um andere Module wieder automatisch mit nachladen zu können. In meinen weiteren Posts zu diesem Thema werde ich wieder darauf zurückkommen. In meinem heutigen Post geht es erstmal um die grundlegende Defininition und Syntax eines Modules.
define('meinmodul', ['modul1'], function (modul1) { return function () {}; });
Mit diesen 3 Zeilen definiert man schon sein eigenes Modul. Per define Funktion lässt sich das Modul "meinmodul" einfach anlegen. Lädt man es per dynamisch nach, würde requirejs dieses Modul aus der Datei meinmodul.js im Basisverzeichnis laden. Die Definination [modul1] bedeutet eine Abhängigkeit von Modul1 diese dann im modul1.js im Basisverzeichnis liegt. Danach übergibt man noch das in Abhängigkeit geladene Modul in die Modul Function um es dort verfügbar zu machen. Danach kann man die eigentliche Funktion des Moduls hinzufügen. Ein praktisches Beispiel folgt in meinem nächsten Post.