JavaScript沒有包管理概念,沒有有效的命名空間機制,但經過require.js庫,則能很好的實現js的命名空間管理,實現不一樣js模塊間的調用和依賴。javascript
定義模塊:html
mod1.jsjava
define(funtion() {jquery
...ui
return {...} // 須要暴露出的屬性htm
}) // 定義mod1.js模塊ip
mod2.jsio
define(['mod1'], function(m1) {function
...require
return {...}
}) // 定義mod2.js模塊,並依賴於mod1模塊
引用模塊:
main.js
require(['mod1', 'mod2'], function(m1, m2)) {...}
html中引用require.js庫:
<script type="text/javascript" data-main="main" src="require.js"></script> // data-main爲主入口文件
模塊中引用jquery模塊:
1. 修改路徑映射
require.config({
paths: {
jquery: 'jquery-1.11.1.min',
jqueryUI: 'jquery-ui-1.10.4.min'
}
});
2. 添加jquery依賴
define(['jquery', 'jqueryUI'], function($, $UI) {...})
經過paths屬性修改路徑映射,避免引用時書寫繁瑣的後綴名。