关于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));
原文地址:https://www.cnblogs.com/feile/p/5325544.html