名前をつけるのがめんどくさい時 – 無名JavaScript

2009年7月22日

Filed under: JavaScript — admin @ 6:49 PM

プログラムを組んでいるとき、名前をつけるのがめんどくさいと思うことが多々多々ある。
そんなときはどうしているのかというと、大抵、

JavaScript:
  1. var a = 'string';
  2. function b(){
  3.    return a;
  4. }

といった具合に適当につける。

ひどい場合は、

JavaScript:
  1. var ahya = function(){
  2.    return;
  3. }

とか、

JavaScript:
  1. var moe = 'ahyao';
  2. var ooiwa = function(){
  3.    return moe;
  4. }

など、人名使ったり、宇宙語使ったり…。

そこで、前回のブログで紹介した、無名関数や無名コンストラクタを使うことで、名前を考えずにとも、ある一定のルールに従ってプログラムを組めば、毎回名前を考える必要はないパターンを紹介する。

まずは、無名関数でグローバル領域を汚さないようにする

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //ここにソース
  4. })();

そして、いきなり実行する無名コンストラクタを実装する

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //無名コンストラクタ
  4.    new function(){
  5.       //ここにソース
  6.    }
  7. })();

コンストラクタ内で呼び出したい関数があれば、
無名関数の中に実装する。

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //無名コンストラクタ
  4.    new function(){
  5.       //ここにソース
  6.    }
  7.    //method_a
  8.    var a = fuction(arg){
  9.       //ここにソース
  10.       return arg;
  11.    }
  12.    //method_b
  13.    var b = fuction(arg){
  14.       //ここにソース
  15.       return arg;
  16.    }
  17. })();

引数に関しても、名前をつけるのがめんどくさい時がある。
さらに、引数の数も決まってない上に、増える可能性がある場合は、
引数を配列として取得するなり、オブジェクトにしてしまうなり方法は色々ある。

JavaScript:
  1. new function(arg){
  2.    var name = arg.name;
  3.    var age = arg.age;
  4.    var bloodType = arg.bloodType;
  5. }({
  6.    name: 'hiroki_ooiwa',
  7.    age: 25,
  8.    bloodType: 'RH-AB'
  9. });

というようにも書ける。
そうすると、引数を定義するときもすっきり見やすくわかりやすくなる。

めんどくさがりな人にはこんな書き方もあるということです。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。

コメントする