Heim  >  Fragen und Antworten  >  Hauptteil

javascript - 在这两段代码中为什么用return才能实现?用alert却不能呢?

/* 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();

求大神解答呀?

迷茫迷茫2749 Tage vor287

Antworte allen(4)Ich werde antworten

  • PHP中文网

    PHP中文网2017-04-10 14:57:09

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

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:57:09

    递归调用sum_num

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:57:09

    同意楼上。。

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

    Antwort
    0
  • 迷茫

    迷茫2017-04-10 14:57:09

    InternalError: too much recursion

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

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

    Antwort
    0
  • StornierenAntwort