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

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 輸出選手最后得分

主站蜘蛛池模板: 华蓥市| 镇坪县| 英吉沙县| 美姑县| 汾西县| 成安县| 加查县| 贡觉县| 汪清县| 密云县| 酒泉市| 潼南县| 廉江市| 上饶县| 额济纳旗| 河北区| 弥渡县| 方正县| 临澧县| 金山区| 基隆市| 高要市| 德安县| 怀柔区| 句容市| 辰溪县| 巴林右旗| 观塘区| 岳西县| 屯昌县| 米泉市| 阿城市| 饶平县| 秭归县| 垫江县| 扶沟县| 社旗县| 林州市| 嘉鱼县| 西昌市| 双峰县|