就是JS中将不同功能的代码封装在不同的文件中, 再互相引用时不会发生命名冲突的一种思想, 大多数情况下, 一个文件就是一个模块 模块化的实现,有多种方案:
- CommonJS: CommonJS是 nodejs中使用的模块化规范 在 nodejs 应用中每个文件就是一个模块,拥有自己的作用域,文件中的变量、函数都是私有的,与其他文件相隔离。模块导出: module.exports=数据,模块导入: require('模块文件路径') - ES6的模块化: 模块功能主要由两个命令构成: export和 import。 export命令用于规定模块的对外接口, import命令用于输入其他模块提供的功能。 一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用 export关键字输出该变量。下面是一个 JS 文件,里面使用 export命令输出变量。
- AMD (Asynchronous Module Definition):
特点: 提倡依赖前置,在定义模块的时候就要声明其依赖的模块:
导入模块 require([module],callback);
定义模块: define('模块名称', 函数)。
- CMD (Common Module Definition): CMD规范是国内SeaJS的推广过程中产生的。提倡就近依赖(按需加载),在用到某个模块的时候再去require。
定义模块: define(function (require, exports, module) {}),使用模块: seajs.use()