
Asynchronous module definition (AMD) is aspecification for the programming languageJavaScript. It defines anapplication programming interface (API) that definescode modules and theirdependencies, and loads them asynchronously if desired. Implementations of AMD provide the following benefits:
In addition to loading multiple JavaScript files at runtime, AMD implementations allow developers to encapsulate code in smaller, more logically-organized files, in a way similar to other programming languages such asJava. For production and deployment, developers canconcatenate andminify JavaScript modules based on an AMD API into one file, the same as traditional JavaScript.
AMD provides someCommonJS interoperability. It allows for using a similarexports andrequire() interface in the code, although its owndefine() interface is more basal and preferred.[1]
The AMD specification is implemented byDojo Toolkit, RequireJS, and other libraries.