前端模塊一般是咱們開發人員爲了不和他人衝突才把模塊代碼放置在一個閉包中。css
如何封裝Node.js和前端通用的模塊,咱們能夠參考Underscore.js 實現,他就是一個Node.js和前端通用的功能函數模塊,查看代碼:前端
如何封裝Node.js和前端通用的模塊,咱們能夠參考Underscore.js 實現,他就是一個Node.js和前端通用的功能函數模塊,查看代碼:瀏覽器
// Create a safe reference to the Underscore object for use below.閉包
var _ = function(obj) {app
if (obj instanceof _) return obj;ide
if (!(this instanceof _)) return new _(obj);函數
this._wrapped = obj;ui
};this
// Export the Underscore object for **Node.js**, withspa
// backwards-compatibility for the old `require()` API. If we're in
// the browser, add `_` as a global object via a string identifier,
// for Closure Compiler "advanced" mode.
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root._ = _;
}
經過判斷exports是否存在來決定將局部變量 _ 賦值給exports,向後兼容舊的require()
API,若是在瀏覽器中,經過一個字符串標識符「_」做爲一個全局對象;