function factorial(num) { if (num <= 1) { return 1; } else { // callee 속성은 피호출자인 함수를 가리키므로 함수이름이 변경되어도 동작. return num * arguments.callee(num - 1); } } // trueFactorial 변수가 factorial 함수를 가리키게 함 var trueFactorial = factorial; // factorial 함수는 0을 반환하는 함수를 가리키게 함 factorial = function() { return 0; } document.write("trueFactorial call :" + trueFactorial(5) + "<br>"); // 120 document.write("factorial call :" + factorial(5) + "<br>"); // 0