Function
コンストラクターを使用して、組み立てられた文字列から関数を作成する、少しのメタプログラミングを行っています。
コンストラクターではFunction
引数名と本体を指定できますが、関数の名前を指定する方法はないようです。
これは、標準に準拠した方法で内部から関数を参照する方法がないように見えることを意味します ( arguments.callee
ES5 では非推奨であり、strict モードでは禁止されています)。リテラルの関数ステートメントを書いている場合、次のようにすることができます。
function myFunc(a, b, c) {
if (c) {
return myFunc(a, b);
}
return 0;
}
Function()
代わりに(を使用せずに) を使用してその関数を構築している場合、この効果を達成する方法はありますeval()
か?