官术网_书友最值得收藏!

4.4 嵌套函數

視頻講解

在JavaScript中允許使用嵌套函數,嵌套函數就是在一個函數的函數體中使用了其他的函數。嵌套函數的使用包括函數的嵌套定義和函數的嵌套調用,下面分別進行介紹。

4.4.1 函數的嵌套定義

函數的嵌套定義就是在函數內部再定義其他的函數。例如,在一個函數內部嵌套定義另一個函數的代碼如下:

    01  function outFun(){        //定義外部函數
    02      function inFun(x,y){  //定義內部函數
    03          alert(x+y);       //輸出兩個參數的和
    04      }
    05      inFun(1,5);           //調用內部函數并傳遞參數
    06  }
    07  outFun();                 //調用外部函數

運行結果如圖4.8所示。

圖4.8 輸出兩個參數的和

在上述代碼中定義了一個外部函數outFun(),在該函數的內部又嵌套定義了一個函數inFun(),它的作用是輸出兩個參數的和,最后在外部函數中調用了內部函數。

注意

雖然在JavaScript中允許函數的嵌套定義,但它會使程序的可讀性降低,因此,盡量避免使用這種定義嵌套函數的方式。

4.4.2 函數的嵌套調用

在JavaScript中,允許在一個函數的函數體中對另一個函數進行調用,這就是函數的嵌套調用。例如,在函數b()中對函數a()進行調用,代碼如下:

    01  function a(){                     //定義函數a()
    02      alert("零基礎學JavaScript");  //輸出字符串
    03  }
    04  function b(){                     //定義函數b()
    05      a();                          //在函數b()中調用函數a()
    06  }
    07  b();                              //調用函數b()

運行結果如圖4.9所示。

圖4.9 函數的嵌套調用并輸出結果

例4.03】 《我是歌王》的比賽中有3位評委,在選手演唱完畢后,3位評委分別給出分數,將3個分數的平均分作為該選手的最后得分。周星星在演唱完畢后,3位評委給出的分數分別為91分、89分、93分,通過函數的嵌套調用獲取周星星的最后得分。代碼如下:(實例位置:資源包\源碼\04\4.03)

    01  <script type="text/javascript">
    02  function getAverage(score1,score2,score3){              //定義含有3個參數的函數
    03     var average=(score1+score2+score3)/3;               //獲取3個參數的平均值
    04     return average;                                     //返回average變量的值
    05  }
    06  function getResult(score1,score2,score3){               //定義含有3個參數的函數
    07     //輸出傳遞的3個參數值
    08     document.write("3個評委給出的分數分別為:"+score1+"分、"+score2+"分、"+score3+"分<br>");
    09     var result=getAverage(score1,score2,score3);         //調用getAverage()函數
    10     document.write("周星星的最后得分為:"+result+"分");  //輸出函數的返回值
    11  }
    12  getResult(91,89,93);                                   //調用getResult()函數
    13  </script>

運行結果如圖4.10所示。

圖4.10 輸出選手最后得分

主站蜘蛛池模板: 远安县| 新乡市| 车致| 清水县| 扎鲁特旗| 沙洋县| 阿尔山市| 桂东县| 沙坪坝区| 焉耆| 保康县| 稻城县| 湟源县| 岳普湖县| 四子王旗| 乌恰县| 贵阳市| 岳西县| 武城县| 饶河县| 开远市| 中山市| 章丘市| 南部县| 嘉禾县| 连云港市| 体育| 佛山市| 时尚| 余干县| 永清县| 广东省| 凉山| 汉川市| 阜康市| 海晏县| 五原县| 清徐县| 江山市| 浦城县| 全州县|