関数の仮引数名を取得する。
prototype.jsをインポートすると追加される「Function#argumentNames」を使うと、「関数の仮引数名一覧」を取得できます。
// 関数。 var f = function( mii, tora, shiro ) {} // 仮引数一覧を取得 var out = document.getElementById( "out" ); out.innerHTML += f.argumentNames().join(",") + "<br/>";
どうやって取得してるんだ?と思ってコードを見てみると、メソッドのtoString()で取得したソースを解析して取り出しているようです。なるほどー。以下、prototype.jsより抜粋です。
Object.extend(Function.prototype, { argumentNames: function() { var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); return names.length == 1 && !names[0] ? [] : names; }, ...
DIコンテナでのコンポーネントの自動インジェクションとかに使えそうですね。コンストラクタの仮引数名に対応するコンポーネントが登録済みであれば引数として渡す、とか。