var factorial=function(num){
if(num<=1)
return 1;
else
// return num*factorial(num-1);//递归时,在方法内部通过该方法的方法名来调用自己是非常危险的,因为js可以直接修改方法变脸的值
return num*arguments.callee(num-1);//递归时,应该使用方法内部属性arguments的callee属性,它保存了当前方法的地址(指针)
}
var another=factorial;
factorial=function(){
return 1;
}
alert(another(5));
alert(another(5));
时间: 2024-09-30 06:48:50