前言:
即将又是在北京的一个十一,突然想起了什么,去年好像十一也是在北京,也在**度过的。自从决全身心进入前端这个行当,也是很久没有这么安安静静地写一些东西了,以后的路很长,希望自己还是一样,一步一步地走踏实了。
正文:
AMD --------- Asynchronous Module Definition
异步模块定义
1、define
参数:
- id
模块标识 {String} 参数是可选的
- dependencies
所依赖的模块
- factory
模块的实现,或者一个JavaScript对象
官方提供的一个例子:
用require 和 exports
define("alpha",["require","exports","beta"],function(require,exports,beta){
exports.verb = function(){
return beta.verb();
//or ....
// return require("beta").verb();
}
});
一个匿名的模块,返回一个对象
define(["alpha"],function(alpha){
return {
verb:function(){
return alpha.verb() + 2;
}
};
});
一个用简单的CommonJS包裹的方式来定义模块
define(function(require,exports,module){
var a = require("a"),
b = require("b");
exports.action = function(){};
});
自由定义的模块可以定义一个对象
define({
add:function(x,y){
return x + y;
}
});
注释:
dependencies的顺序和factory参数是一一对应的。
扩展阅读:
1、https://github.com/amdjs/amdjs-api/wiki/AMD