プログラムを組んでいるとき、名前をつけるのがめんどくさいと思うことが多々多々ある。
そんなときはどうしているのかというと、大抵、
var a = 'string';
function b(){
return a;
}
といった具合に適当につける。
ひどい場合は、
var ahya = function(){
return;
}
とか、
var moe = 'ahyao';
var ooiwa = function(){
return moe;
}
など、人名使ったり、宇宙語使ったり…。
そこで、前回のブログで紹介した、無名関数や無名コンストラクタを使うことで、名前を考えずにとも、ある一定のルールに従ってプログラムを組めば、毎回名前を考える必要はないパターンを紹介する。
まずは、無名関数でグローバル領域を汚さないようにする
//無名関数
(function(){
//ここにソース
})();
そして、いきなり実行する無名コンストラクタを実装する
//無名関数
(function(){
//無名コンストラクタ
new function(){
//ここにソース
}
})();
コンストラクタ内で呼び出したい関数があれば、
無名関数の中に実装する。
//無名関数
(function(){
//無名コンストラクタ
new function(){
//ここにソース
}
//method_a
var a = fuction(arg){
//ここにソース
return arg;
}
//method_b
var b = fuction(arg){
//ここにソース
return arg;
}
})();
引数に関しても、名前をつけるのがめんどくさい時がある。
さらに、引数の数も決まってない上に、増える可能性がある場合は、
引数を配列として取得するなり、オブジェクトにしてしまうなり方法は色々ある。
new function(arg){
var name = arg.name;
var age = arg.age;
var bloodType = arg.bloodType;
}({
name: 'funnythingz',
age: 25,
bloodType: 'RH-AB'
});
というようにも書ける。
そうすると、引数を定義するときもすっきり見やすくわかりやすくなる。
めんどくさがりな人にはこんな書き方もあるということです。