JavaScript的模塊規范有:1、CommonJS規范;2、AMD(異步模塊定義)規范;3、CMD(公共模塊定義)規范;4、UMD規范(AMD和CommonJS的糅合)。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
常見的JavaScript 模塊化規范有3種,CommonJS、AMD(異步模塊定義)、CMD(公共模塊定義)
服務端 :NodeJS 服務:CommonJS規范,新版本的Node也可以啟用ES6 Module功能
瀏覽器端:主要使用的是AMD規范和CMD規范,現在已經逐步被ES6 Module取代
模塊化規范
1. CommonJS規范
(1) 每一個文件都是一個模塊,每一個模塊都有一個獨立的作用域,文件內的變量,函數都是私有的,其他文件不可使用(除非賦值到 global上) (2)每個模塊內部,module變量代表當前模塊 (3)每個文件對外的接口是 module.exports 屬性 (4) require用于引用其他模塊,實際獲得的是其他模塊的module.exports這個屬性
2. AMD(Asynchromous Module Definition – 異步模塊定義)
AMD 是 RequireJS 在推廣過程中對模塊定義的規范化產出
使用
定義模塊 define(id?, dependencies?, factory) 加載模塊 require([module], callback)
3. CMD(Common Module Definition – 公共模塊定義)
CMD 是 SeaJS 在推廣過程中對模塊定義的規范化產出
使用
定義模塊 define(factory) 加載模塊 require(id)
4. UMD(AMD和CommonJS的糅合)
UMD先判斷是否支持Node.js的模塊(exports)是否存在,存在則使用Node.js模塊模式。
在判斷是否支持AMD(define是否存在),存在則使用AMD方式加載模塊。
(function (window, factory) { if (typeof exports === 'object') { module.exports = factory(); } else if (typeof define === 'function' && define.amd) { define(factory); } else { window.eventUtil = factory(); } })(this, function () { //module ... });
【