AMD(Asynchronous Module Definition)、CMD(Common Module Definition)和UMD(Universal Module Definition)是JavaScript模块化规范,用于管理和组织JavaScript代码的模块化加载和依赖管理。
1:AMD(异步模块定义):
-
AMD是由RequireJS提出的模块化规范。
-
它支持异步加载模块,适用于浏览器环境。
-
模块使用define函数定义,使用require函数异步加载依赖模块。
-
示例代码:
// 定义模块 define(['dependency'], function(dependency) { // 模块代码 return module; }); // 异步加载依赖模块 require(['module'], function(module) { // 使用模块 });
2:CMD(通用模块定义):
-
CMD是由SeaJS提出的模块化规范。
-
它也支持异步加载模块,适用于浏览器环境和服务器端(Node.js)。
-
模块使用define函数定义,使用require函数异步加载依赖模块。
-
示例代码:
// 定义模块 define(function(require, exports, module) { // 引入依赖模块 var dependency = require('dependency'); // 模块代码 module.exports = module; }); // 异步加载依赖模块 require(['module'], function(module) { // 使用模块 });
3:UMD(通用模块定义):
-
UMD是一种兼容多种模块化规范的通用模式。
-
它可以在浏览器环境和服务器端(Node.js)中使用。
-
UMD模块定义通常结合了AMD和CommonJS规范,以实现跨平台的兼容性。
-
示例代码:
(function(root, factory) { if (typeof define === 'function' && define.amd) { // AMD define(['dependency'], factory); } else if (typeof module === 'object' && module.exports) { // CommonJS module.exports = factory(require('dependency')); } else { // 全局变量 root.module = factory(root.dependency); } })(this, function(dependency) { // 模块代码 return module; });
这些模块化规范提供了一种组织和管理JavaScript代码的方式,使代码更具可维护性、可重用性和可扩展性。