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