Javascriptの俺俺ルール
混乱するのでこうすることに決めた。
/* 俺俺ルール * jQueryを使う、という前提。JSは謙抑的であるべきとおもう。 */ /* 1.普通につくる分にはグローバルにfunctionを並べる方 * グローバル汚染とかキニスンナ。 * JSは見た目をちょこっと弄るのが目的だしそれで終わらせるべき * 絶対的に分かりやすい。 */ function hoge(){ console.log("hoge"); } hoge(); /* 2.関数が増えて訳がわからない時は * ネームスペース的に関数を整理したいときはクロージャーをつくり * プロパティーに関数を設定すれば見やすい。 */ var NamespaceA = function(){}; NamespaceA.fuga = function(){ console.log("a_namespace.fuga"); }; NamespaceA.fuga(); /* これも同義だが 1 と見分けが付きにくいので使いたくない function NamespaceA(){} NamespaceA.fuga = function(){ console.log("a_namespace.fuga"); }; NamespaceA.fuga(); */ /* どうしてもデータ構造を作らないと行けないときにprototypeを使う。 * jQueryなど便利アイテムを使っていて尚さらにprototypeとかしないと * ダメな時はJS依存が強すぎで負けなきがしている。。 */ var ModelA = function(){}; ModelA.prototype = { field_a : "Hello Prototype", method_a : function (msg){console.log(msg);} }; var a_obj = new ModelA(); a_obj.method_a(a_obj.field_a); /* コレも同義だが{}の方が構造定義というのが見やすいので使わない var ModelA = function(){}; ModelA.prototype.field_a = "Hello Prototype"; ModelA.prototype.mathod_a= function (msg){console.log(msg);} var a_obj = new ModelA(); a_obj.method_a(a_obj.field_a); */