js中callee属性的问题,为什么结果不是0?代码如下

    <script type="text/javascript">
        function sums(num){
            if(num<=1){return 1;}
            //else return num*sums(num-1);
            else return num*arguments.callee(num-1);
        }
    window.onload=function(){
        var sumsTest=sums;
        sums=function(){
            return 0;
        }
        alert(sumsTest(5));  // 120  **_为什么不是0???_**
        alert(sums(5));  //0
    }
    </script>

arguments.callee指向了被调用的方法,所以一直在递归调用,直到值变成1,也就是算出阶乘,所以不是0

希望能够帮到你