現在実行している関数を示します。
無名関数内で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) を返す
0 件のコメント:
コメントを投稿