例: 無名再帰関数内での arguments.callee の使用

再帰関数は自分自身を参照する必要があります。関数が自分自身を参照するには、一般的には関数の名前を使用します。しかしながら、無名関数には名前がありません。さらにその無名関数を参照するアクセス可能な変数も無い (関数がどの変数にも代入されていない) 場合、その関数には自分自身を参照する手段がありません。 (無名関数は関数式または Function コンストラクタによって作成できます) そこで arguments.callee の出番です。

次の例では関数を定義し、その関数内でさらに階乗関数を定義し、それを返しています。

function makeFactorialFunc() {
   alert('making a factorial function!');
   return function(x) {
      if (x <= 1)
         return 1;
      return x * arguments.callee(x - 1);
   };
}

var result = makeFactorialFunc()(5); // 120 (5 * 4 * 3 * 2 * 1) を返す
https://developer.mozilla.org/ja/JavaScript/Reference/Functions_and_function_scope/arguments/callee