CommonJS加载模块是同步的,而AMD模块加在是非同步的,允许指定回调函数。由于Nodejs主要用于服务器编程,模块文件一般都存在于本地,所以加载很快,不需要考虑非同步加载,用CommonJS即可。但浏览器端是从服务器加载模块,这就需要用非同步模式,顾选择AMD会合适些。
AMD使用define方法来定义模块,如:
define(['./B'],function(){
var a=function(){
};
return{
A:a
};
})
AMD是允许输出的模块兼容CommonJS的,所以写法可以改为:
define(funciton(require,exports,module){
var a=require('./B');
exports.C=function(){
}
})