質問: { self : $("セレクタ"),//書かれているもののどこにも適用されてないようでした。 trigger : $("発火セレクタ"), init : function(){ this.trigger.on("click",function(){ console.log("hoge");//例 }); } }; ``` ※上記コードは一般サイトのコードから転記しているものです。 上のようなコード(単純なものではないコード)になっているのは、そうしないと問題が発生するものなのでしょうか。 それとも管理がしやすい等の理由なのでしょうか。 まとまりの無い質問で申し訳ありませんが、上記のような複雑なコードになる理由をご存知の方がおりましたら回答をぜひよろしくお願いします。 ### 補足情報(FW/ツールのバージョンなど) 必要なものがあれば追記します。
回答: 結論だけ言うと「場合によりけり」です。 サイトの仕様を問題なく満たせているのであれば、どんな実装でも全く問題ありません。 ですから、stuffさんが最初に書いているコードでも全く問題ありません。 一部のサイトで一見して複雑な書き方がされているのは、開発上の便宜のためです。 サイトの規模が大きければ大きいほど、また機能が複雑になればなるほど、ソースコードも複雑になります。 もし、処理すべてを一連の流れ(「手続き」)として記述すると、コードが複雑になり、大抵の人には処理が追えなくなります。また、処理の一部を変更したくなった場合、毎回全体が壊れないように注意しなければなりません。 そこで、データやそのデータに関する処理をグループ(オブジェクト)にまとめておき、 必要に応じて(外部から)処理を呼び出すようにすることで、全体の見通しがよくなります。 また、処理がグループにまとめられていれば、一部の機能を変更したい場合、該当部分のみを修正するだけで大丈夫になります。 ただ、「まとめ方(=設計)」をしくじるとまとめるメリットがなくなってしまう場合もあります。 「データとその処理をまとめる」といった考え方は、今後どこかで必ず出くわすと思いますので、「オブジェクト指向」や「コンポーネント」といったキーワードで調べてみてください。