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));