JavaScript Diary

関数名の抜き出し [ 2001/06/20 ]
僕はプログラムを書くとき出来るだけ一般化させて書いています。その方がパラメータの変更時などに更新が容易に行えるからです。これはプログラムを配布している方等には特に重要なことだと思います。
下の例はユーザの手を煩わせないというか、どちらかというと作成者のための一般化です。例えば、
function MyClass(){
    var F  = MyClass;
    var FP = F.prototype;
    ...
}
これは何の変哲もないものですが、これを一般化するために正規表現を使うと次のように書くことが出来ます。
function MyClass(){
    var funcname = arguments.callee.toString().match(/function (\w+)/)[1];
    var F  = window[ funcname ];
    var FP = F.prototype ;
    ...
}
この場合、単純に var F = arguments.callee; としても良いのですが、この関数名を抜き出すという操作を知っておけば何かと応用が利くと思います。