为了保证正确使用递归函数,可以使用arguments.callee(),这是指向当前正在执行的函数的指针,
例
<script type="text/javascript">function a(n)
{
if(n<=1)
{
return 1;
}
else
{
return a(n-1)*n;
}
}
alert("10的阶乘为:"+a(10));
</script>
若调用函数的时候改为:
var b=a;
a=null;
alert(b(10));
就会出错,因为,a此时已经不是函数了,所以会出错。
此时改为return arguments.callee(n-1)*n;
就可以了。