オブジェクト初期化子

JavaScriptのEventまわりについて調べていたら、見たことない記法が出てきた。なんか変数の後ろにコロン付けて、それに続けてfunctionとかあるんだわ。型みたいなの。検索してみると、オブジェクト初期化子というものらしい。

var hoge = {
    doMoge : function(_argument) {
        alert(_argument);
    }
}
hoge.doMoge();

オブジェクト初期化子を使うと、Objectのインスタンス生成時に、そのプロパティの初期化ができる模様。上の例は、プロパティを関数で初期化してみたところ。

単純化すると、こういう話。

// 次の2行は同じ意味
var hoge = new Object();
var moge = {};

もちろん new してから代入しても同じだけど、明示的に初期化できるから、こっちの方がコードの可読性は良い。単純化の例だと逆効果になりそうだけど、ちゃんと使えば素敵かもしれない。まあ、最近クラス化が基本になってるから、使い場所ないんじゃないかって、専らの噂だけどね。

[参考] Under Translation of ECMA-262 3rd Edition オブジェクト初期化子

なーんか、こんなの他でも見たことあるなーって思ったら、bashの変数の初期化もこんなんだったっけ。

count=`expr ${count:-0} + 1`

シェルって極まってくると顔文字っぽくなってくるなー。いや、シェルの達人たちこそ、顔文字見て「あ、シェル…」とか思ったりするのか。やっぱ極限ってスゲー。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/216