関数の再帰呼び出し

関数の中で、自分自身(その関数)を呼び出すことを「再帰呼び出し」と呼ぶ。
以下は再帰呼び出しを利用して階乗を計算するプログラム。

function factorial(n){
    if (n<0){
        throw new Error('0以上の値を指定してください:');
    }else if(n==0){
        return 1;
    }else{
        return factorial(n-1)*n;
    }
}
alert(factorial(5));

JavaScriptでは、Argumentsオブジェクトの、calleeプロパティに関数自身への参照が格納されている。
calleeプロパティ使用することで、再帰呼び出しでることが分かりやすくなる。

function factorial(n){
    if (n<0){
        throw new Error('0以上の値を指定してください');
    }else if(n==0){
        return true;
    }else{
        return arguments.callee(n-1)*n;
    }
}