これは、JavaScriptコードの構造に関する一般的な質問であり、適切に構造化されたコードに向かって正しい方向に進んでいるかどうかです。
私が持っている現在のコード:
(function (myNamespace, $, undefined) {
myNamespace.className = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
(function (myNamespace, $, undefined) {
myNamespace.className2 = {
init:function { } // do stuff
}
} (window.myNamespace= window.myNamespace|| {}, jQuery)));
明らかに、上記のコードでは、同じ名前空間を使用して(ページ/サイトのセクションごとに)、myNamespace.className.init()
などを介して呼び出すことができます。必要に応じてこれらを組み合わせることもできますが、読みやすくするためにクラスをカプセル化しています。
今、私はメディエーターの概念についてhttp://addyosmani.com/largescalejavascript/を読んでいます。私の二次的な質問は、いつ(そしてもし)これらを使うべきかということです。className2から、明らかに私は次のことができます。
myNamespace.className2 = {
init:function { myNamespace.className.init() } // do stuff
}
では、なぜこれがclassName likeにサブスクライブしmediator.subscribe("classNameInit")
、そのイベントをclassNameで公開するのでしょうか。
JavaScriptの記述方法を変更している間、これを正しく行う必要があるため、コードの構造に関する提案を非常に受け入れています。