私は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(){
})();
そして、ページごとにモジュールを作成することを計画しているので、これらのDOM要素がイベントが存在しないページでは、理由もなくイベント(ボタンのクリックなど)をワイヤアップしません。
APP.homePage = (function(){
return {
};
})();
したがって、各モジュールには、実行する必要のあるものを実行するためにページで呼び出すinit()メソッドがあります(たとえば、イベントの配線、userIdなどの変数の設定)。
$(document).ready(function() {
APP.init(<%= user.id %>);
APP.homePage.init('abc');
});
したがって、ファイルが大きくなりすぎた場合は、それらを別々のファイルに分割することもできます。
あるモジュールが別のモジュールを呼び出す必要がある場合、これが機能する唯一の方法は、パブリックAPIを介してこれを行うことだと思いますか?たとえば、homePageにuserIdが必要な場合、homePage#initメソッドでそれを渡す必要がありますか?
私のコーディングスタイルはどうですか?ベストプラクティスとは見なされない明らかなスタイルはありますか?
- このアプローチについて何かコメントはありますか?一般的には良いですか?