关于arguments.callee

    try {
        function factorial(n) {
            if (n <= 1) {
                return 1;
            } else {
                return n * factorial(n - 1);
            }
        }
        var factorial2 = factorial;
        factorial = null;
        alert(factorial2(4));
    } catch (e) {
        alert("wrong!");//wrong!
    }
    function factorial(n) {
        if (n <= 1) {
            return 1;
        } else {
            return n * arguments.callee(n - 1);
        }
    }
    var factorial2 = factorial;
    factorial = null;
    alert(factorial2(4));

 

posted @ 2016-04-16 21:04  绯乐  阅读(124)  评论(0编辑  收藏  举报