クライアントのJSがサーバーサイドよりコーディングが雑になりがちになるのは周知の事実かと思います。
なぜなら
・データベースにアクセスしない
・結局サーバー側でNullチェックとかするし・・。
・わりと適当に書いてもそれなりに動く
ただ、ここ数年でJSの期待度が上がってきている・・・というよりかなり注目されつつあります。
クライアント側はHTML5、CSS3、jQueryを始めとした豊富なJSライブラリが主な理由だと思います。
JSライブラリでは
「DOM操作しやすい」とか「MVCを意識している」などといった特徴的なライブラリが豊富です。
ということで(あんまり関係ないですが)、JSのクラス化について触れたいと思います。
JSは型やファイルを跨いだ関数などをあまり意識せず書くことができます。
簡単な名前のグローバル変数を持つと関数の中で被ってしまうとバグの原因に・・・なんてことあると思います。
そこでクラス化。
--以下main.js--
var main = function(){
return this;
}();
main.name = "Tanaka";
--以下sub.js--
var sub = function(){
return this;
}();
sub.name = "Yamada";
こんな書き方ができます。
mainとsubというクラスの中にnameという変数を定義しています。
もちろんクラスなので関数を書くこともできます。
main.login = function(){
//loginの処理
};
と書きます。
呼び出し方は
main.login();
()の中に値を書けば引数を渡すことも可能です。
見ただけだと「JSONの中に変数や関数を入れている」みたいな感じにも見えますね。
JSのファイルが多い時や同じ変数・関数名を使いたい時何かは使ったほうが良いと思います。
結局グローバルに持つことは変わらないんですがね。。
Javaでもクラス跨ってグローバル変数持つより、staticなクラスを作りますよね。
まあそんなにオブジェクト指向得意でもないんですが・・・笑