我使用的JavaScript模塊模式,並且有這個至今:打破我的JavaScript到模塊,我做對了嗎?
var APP;
if(APP == undefined) {
APP = {};
}
APP = (function() {
var userId = -1;
var privateVar = '';
var _init = function($userId) {
userId = $userId;
};
var _publicMethod = function($id){
privateVar = id;
};
return {
init = function($userId) {
_init($userId);
},
publicMethod = function($id) {
_publicMethod($id);
}
};
})();
我再有一個共同的utils的模塊:
APP.utils = (function(){
})();
然後每頁我計劃具有模塊,所以我不wireup事件(點擊按鈕等),沒有理由在哪裏,這些DOM元素不活動頁面存在:
APP.homePage = (function(){
return {
};
})();
因此,每個模塊都會有一個init()方法ŧ我會在頁面上調用運行必須運行的事情(例如,接線,事件,設置好比說用戶id等變量):
$(document).ready(function() {
APP.init(<%= user.id %>);
APP.homePage.init('abc');
});
所以,現在如果文件受到太大,我能打破他們分成不同的文件也。
如果什麼一個模塊需要調用另一個,我想這個工作的唯一途徑是通過公共API有權這樣做嗎? 例如如果homePage需要userId,我應該在homePage#init方法中傳遞它嗎?
我的編碼風格如何,任何不被認爲是最佳實踐的明顯風格?
- 對此方法有何評論?一般情況好嗎?
你還應該看看require.js。 – Thilo
可能是一個問題http://codereview.stackexchange.com – Bergi