簡單描述下區別:html
Commonjs: 用於服務器端, 經過export導出模塊,require加載模塊,module表示模塊自己,加載過程爲同步, 不適合客戶端. nodejs是用commonjs規範node
寫法: a.js var a = function(x) {console.log(x)}; module.export = a;服務器
b.js var b= reuqire('./a.js); b('啦!!');異步
Amd: 常見實現庫requirejs, 異步加載requirejs
寫法: ui
// module1.js spa
define(htm
{blog
methodA: function() {ip
console.log('我是module1的methodA');
},
methodB: function() {
console.log('我是module1的methodB');
}
})
// module2.js
define(function () {
return {
methodA: function() {
console.log('我是module2的methodA');
},
methodB: function() {
console.log('我是module2的methodB');
}
};
});
// module3.js
define(['module1', 'module2'], function(m1, m2) {
return {
methodC: function() { m1.methodA(); m2.methodB();}
};
});
// main.js
require(['module3'], function(m3){ m3.methodC(); });
// main.html
<script data-main="main" src="require.js"></script>
Cmd跟Amd相似
// CMD
define(function(require, exports, module) {
var a = require('./a');
a.doSomething(); // 此處略去 100 行
var b = require('./b');// 依賴能夠就近書寫
b.doSomething();
// ...
})
注: 參考 https://www.cnblogs.com/lishuxue/p/6000205.html