以下の内容はhttps://unageanu.hatenablog.com/entry/20081210/1228902572より取得しました。


関数の仮引数名を取得する。

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コンテナでのコンポーネントの自動インジェクションとかに使えそうですね。コンストラクタの仮引数名に対応するコンポーネントが登録済みであれば引数として渡す、とか。




以上の内容はhttps://unageanu.hatenablog.com/entry/20081210/1228902572より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14