JavaScriptにおいて、再起呼び出しをする場合は普通の関数を使いますが、匿名関数でも再起呼び出しをしたい場合は、あらかじめ用意されている「argumentsオブジェクト」の「calleeプロパティ」を使います。

calleeプロパティは、現在実行中の関数を参照するためのプロパティです。


匿名関数で、階乗を再起処理で行う

下記の例では、5! = 5*4*3*2*1の結果 120 と表示されます。

var Kaijyou = function( n ){
  if( n == 0 ){ return 1; }
  else{         return  n * arguments.callee(n-1); }
}
alert( factorial(5) );  // => 120


パット見、よくわからないので、普通に書いたほうが良さそうですね。

2021/06/16