javascript - 在这两段代码中为什么用return才能实现?用alert却不能呢?
迷茫
迷茫 2017-04-10 14:55:09
0
4
325

/* function sum_num(){  
    var total = 0;  
    for(var i=0;i<arguments .length;i++){  
        total+=arguments[i];  
    }  
    return total;  
}  

alert(sum_num(2,34,45,56,56)); */

 function sum_num(){  
    var total = 0;  
    for(var i=0;i<arguments .length;i++){  
        total+=arguments[i];  
    }  
     alert(sum_num(total)); 
}  

sum_num();

求大神解答呀?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(4)
Ty80

你的代码应该是递归调用sum_num了,可以写成alert(total)。

巴扎黑

递归调用sum_num

巴扎黑

同意楼上。。

javascriptalert(sum_num(total)); // 这里岂不是递归了,改为alert(total)就OK了
迷茫

InternalError: too much recursion

... for(var i=0;i<arguments .length;i++){
total+=arguments[i];
} ...

使用递归去实现你期望的逻辑是错误的,你期望的是获取所有的参数的和,但是你的递归没有结束条件,所以导致死循环,但是就算是有结束条件,递归也不是这么用的

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage