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


