JS的递归函数疑问

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
         var msg="\n函数的递归调用:\n\n";
         //响应按钮的点击事件
         function Test()
         {
             var result;
             msg+="调用语句:\n";
             msg+="    result=sum(20);\n";
             msg+="调用步骤:\n";
             result=sum(20);
             msg+="计算结果:\n";
             msg+="    result="+result+"\n";
             alert(msg);
         }
         //计算当前步骤加和值
         function sum(m)
         {
             if(m==0)
             {
                 return 0;
             }
             else
             {
                 msg+="    result="+m+"+sum("+(m-2)+ ");\n";
                 result=m+sum(m-2);
             }
             return result;
         }
    </script>
</head>
<body>
    <input type="button" value="测试" onclick="Test()"/>
</body>
</html>

这个递归函数大体的意思我能明白,它在自身中调用。我有一点不明白,这里的"msg+="调用语句:\n"。a+=b不是赋值运算吗?一开始已经定义了"var msg="函数的递归调用:",那么"msg+="调用语句"应该等价于"msg=msg+"调用语句",即"函数的递归调用:调用语句"。但是提交后显示的只是"调用语句"。如图http://img.mukewang.com/56a1a4800001605202170401.jpg求各位老师解惑。

天窗的蚂蚁
浏览 1658回答 1
1回答

Caballarii

函数的递归调用:后面有两个\n,相当于换行两次
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript