function factorial(num){
if (num < = 1){
return 1;
}else{
return num * argumets.callee(num-1);
}
}
var anotherFactorial = factorial;
factorial = null;
alert(anotherFactorial(4));
为何运行时没结果

解决方案 »

  1.   


        <script type="text/javascript">
            function factorial(num) {
                if (num <= 1) {
                    return 1;
                } else {
                    return num * arguments.callee(num - 1);//这里有拼写错误arguments
                }
            }
            var anotherFactorial = factorial;
            factorial = null;
            alert(anotherFactorial(4));
        </script>
      

  2.   

    function factorial(num){
        if (num <= 1){//前面是<=,不能写成< =
            return 1;
        }else{
            return num * arguments.callee(num-1);//写错了arguments,你少写了个n
        }
    }
    写错了arguments,你少写了个n
      

  3.   

    if (num < = 1) // 应该是if (num <= 1) 
    说实在我有点看不懂你的代码为什么那样写。也不知道你是不是想实现1x2x3x....xN的结果。如果是的话应该写:<script language="javascript">
    function factorial(num){
        if (num <= 1){
            return 1;
        }else{
            return num * factorial(num-1);
        }
    }
    factorial(3);//1x2x3=6
    factorial(4);//1x2x3x4=24
    factorial(5);//1x2x3x4x5=120
    </script>
      

  4.   


    呵呵,Lz有可能是看教程,看到使用arguments.callee调用自身的递归了,在试验吧