模块:通常是开发人员为了避免和他人冲突把内含JavaScript 代码的独立文件放置在一个闭包中,注册其功能并导出模块的值,以工程化的思维将复杂系统拆分成一个个小的可管理的模块,其目标为减少项目的复杂度,提升项目的可维护度、代码复用。
AMD:浏览器中编写模块化Javascript的格式(通过识别号进行查找),实现了解耦及包括异步的调用和其本身的高扩展性, 简称为异步模块定义,主要实现: RequireJS
define(
module_id, // 可选 ID或者标识符
[dependencies], // 可选 定义的模块需要的依赖项数组
definition // 执行初始化模块的方法 将依赖项映射到函数参数
);
define("myModule", ["hello"], function( hello ){
hello() // 引入并执行
return function world(){ // 导出world函数
console.log('world');
};
});
CMD: 一个模块就是一个文件,与 RequireJS 的 AMD 规范相比,CMD 规范尽量保持简单,并与 CommonJS 和 Node.js 的 Modules 规范保持了很大的兼容性。通过 CMD 规范书写的模块,可以很容易在 Node.js 中运行,
define({ "foo": "bar" }); // 对象
define('I am a template. My name is {
{name}}.'); //