<!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+"調用語句",即"函數的遞歸調用:調用語句"。但是提交后顯示的只是"調用語句"。如圖求各位老師解惑。
JS的遞歸函數疑問
天窗的螞蟻
2016-01-22 11:40:22