为什么要使用模块化?
- 解决命名冲突
- 依赖管理
- 提高代码可读性
- 代码解耦,提高复用性
CMD、AMD、CommonJS 规范分别指什么?有哪些应用
- AMD
是”Asynchronous Module Definition”的缩写,意思就是”异步模块定义”。采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
语法:define(id, dependences, factory);
- CommonJS:
用于服务器端模块化,有一个全局性方法require(),用于加载模块。
语法:
require(dependences) // 加载依赖模块
exports.factory = function(){ // ...}; // 使用”exports”对象来做为输出的唯一表示。
- CMD:
CMD(Common Module Definition)是 SeaJS推广过程中产生的。和AMD不同的是,它并不是异步加载,而是松散加载,只有当需要加载模块的时候,再用require方法引用模块。
语法:define(factory);
// CMD
// math.js
define(function(requires, exports, module) {
exports.add = function(x, y) {
return x + y;
};
});
// inc.js
define(function(requires, exports, module) {
var add = require('math').add;
exports.inc = function(val) {
return add(val, 1);
};
});
// program.js
define(function(require, exports, module) {
var inc = require('inc').inc;
var a = 1;
inc(a); // 2
module.id = "program";
});
具体请看下面样列:
http://tuituibang.top/Example_one/WTF.html