欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript學習筆記之Function對象

 更新時間:2015年01月22日 11:46:11   投稿:hebedich  
這篇文章主要介紹了JavaScript學習筆記之Function對象的相關(guān)資料,需要的朋友可以參考下

 在JavaScript中,函數(shù)function就是對象。

JS中沒有方法重載

  在JavaScript中,沒有方法(函數(shù))重載的概念。

  例子:

復制代碼 代碼如下:

<html>
       <head>
              <script type="text/javascript">
              function add(number)
              {
                    alert(number + 20);  
              }
              function add(number, number1)
              {
                     alert(number + 30);  
              }          
              add(10);
              </script>
       </head>
       <body>
       </body>
</html>

網(wǎng)頁中彈框顯示的是40。

  說明雖然第二個方法是兩個參數(shù),但是仍然調(diào)用了它。

  交換兩個方法的順序之后,彈框顯示30,可以看出不管參數(shù)個數(shù)如何,是調(diào)用同名的后面的方法。

  怎么解釋這個現(xiàn)象?

  這是因為函數(shù)聲明實際上是建立了一個對象:

復制代碼 代碼如下:

<html>
    <head>
        <script type="text/javascript">
        function add(number)
        {
             alert(number + 20);   
        }
        /*
        上面的函數(shù)等價于:
        var add = function(number)
        {
            alert(number + 20);
        }
        */       
        function add(number, number1)
        {
            alert(number + 30);   
        }
        /*
        上面的函數(shù)等價于:
        var add = function(number, number1)
        {
            alert(number + 30);
        }   
        */
        add(10);
        </script>
    </head>
    <body>   
    </body>
</html>

  這樣add實際指向的是后面的對象,而方法調(diào)用的時候賦予的參數(shù)將會按順序賦給方法形式參數(shù),后面沒有被賦值的參數(shù)就是undefined。

  JavaScript的函數(shù)調(diào)用的時候沒有嚴格的參數(shù)個數(shù)檢查,實參個數(shù)小于形參個數(shù)是可以的,沒有被賦值的形參就是未定義值undefined。

  實參個數(shù)大于形參個數(shù)也是可以的,這樣只有前面的實參會被使用,多出來的實參不會被使用。

Function對象

  在JavaScript中有一個Function對象,所有自定義的函數(shù)都是Function對象類型的。

  Function對象接收的所有參數(shù)都是字符串類型的,其中最后一個參數(shù)就是要執(zhí)行的函數(shù)體,而前面的參數(shù)則是函數(shù)真正需要接收的參數(shù)。

  例子:

復制代碼 代碼如下:

<html>
    <head>
        <script type="text/javascript">
        var add = new Function("number", "number1", "alert(number + number1);");
        var add = new Function("number", "alert(number + 20);");
        add(10, 30);
        </script>
    </head>
    <body>   
    </body>
</html>

隱含對象arguments

  在JavaScript中,每個函數(shù)都有一個隱含的對象arguments,表示給函數(shù)實際傳遞的參數(shù)。

  arguments和函數(shù)的形式參數(shù)及其個數(shù)無關(guān)。

  arguments有個有用的屬性length,表示實參的長度??梢越柚@個來模擬出函數(shù)的重載:

  練習例子:

復制代碼 代碼如下:

<html>
    <head>
        <script type="text/javascript">
        function add(number1, number2)
        {
            alert(arguments.length);           
            alert(arguments[0]);
            alert(arguments[1]);
            alert(arguments[2]);
        }   
        //add(2, 3, 4);
        function add2()
        {
            if(1 == arguments.length)
            {
                alert(arguments[0]);
            }
            else if(2 == arguments.length)
            {
                alert(arguments[0] + arguments[1]);
            }
            else if(3 == arguments.length)
            {
                alert(arguments[0] + arguments[1] + arguments[2]);
            }
        }
        add2(3);
        add2(3, 4);
        add2(3, 4, 5);
        </script>
    </head>
    <body>   
    </body>
</html>

  每一個函數(shù)對象都有一個length屬性,表示該函數(shù)期望接收的參數(shù)格式。

  它與函數(shù)的arguments不同,arguments.length表示函數(shù)實際接收的參數(shù)個數(shù)。

  例子:

復制代碼 代碼如下:

<html>
    <head>
        <script type="text/javascript">
        var add = function(num, num2, num3)
        {
            alert(num + num2 + num3);
        }   
        alert(add.length); //輸出3
        add(1, 2, 3);
        var add2 = function()
        {
        }
        alert(add2.length); //輸出0
        </script>
    </head>
    <body>
    </body>
</html>

相關(guān)文章

  • JavaScript函數(shù)中上下文有哪些規(guī)則

    JavaScript函數(shù)中上下文有哪些規(guī)則

    上下文是從英文context翻譯過來,指的是一種環(huán)境。在軟件工程中,上下文是一種屬性的有序序列,它們?yōu)轳v留在環(huán)境內(nèi)的對象定義環(huán)境。在對象的激活過程中創(chuàng)建上下文,對象被配置為要求某些自動服務(wù)。又比如計算機技術(shù)中,相對于進程而言,上下文就是進程執(zhí)行時的環(huán)境
    2021-10-10
  • URL編碼轉(zhuǎn)換,escape() encodeURI() encodeURIComponent()

    URL編碼轉(zhuǎn)換,escape() encodeURI() encodeURIComponent()

    URL編碼轉(zhuǎn)換,escape() encodeURI() encodeURIComponent()...
    2006-12-12
  • js學習之----深入理解閉包

    js學習之----深入理解閉包

    本篇文章主要介紹了js的閉包,閉包算是js里面比較不容易理解的點,現(xiàn)在整理出來分享給大家,有需要的可以了解一下。
    2016-11-11
  • javascript學習筆記(四) Number 數(shù)字類型

    javascript學習筆記(四) Number 數(shù)字類型

    數(shù)字格式化方法toFixed()、toExponential()、toPrecision(),三個方法都四舍五入
    2012-06-06
  • 深入理解 JS 垃圾回收

    深入理解 JS 垃圾回收

    JS的垃圾回收機制是為了以防內(nèi)存泄漏,內(nèi)存泄漏的含義就是當已經(jīng)不需要某塊內(nèi)存時這塊內(nèi)存還存在著,垃圾回收機制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內(nèi)存。下面我們來一起深入學習一下吧
    2019-06-06
  • js實現(xiàn)unicode碼字符串與utf8字節(jié)數(shù)據(jù)互轉(zhuǎn)詳解

    js實現(xiàn)unicode碼字符串與utf8字節(jié)數(shù)據(jù)互轉(zhuǎn)詳解

    這篇文章主要介紹了js實現(xiàn)unicode碼字符串與utf8字節(jié)數(shù)據(jù)互轉(zhuǎn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • javascript編程起步(第三課)

    javascript編程起步(第三課)

    javascript編程起步(第三課)...
    2007-02-02
  • 你的 mixin 真的兼容 ECMAScript 5 嗎?

    你的 mixin 真的兼容 ECMAScript 5 嗎?

    本篇文章主要講述了,在JavaScript 中把一個對象的屬性或者方法 mixin 到另一個
    2013-04-04
  • actionscript與javascript的區(qū)別

    actionscript與javascript的區(qū)別

    actionscript是flash的腳本語言,目前已經(jīng)由adobe公司升級到3.0版本,成為了真正意義的oop語言,JavaScript是由netscape工程師設(shè)計完成的一門腳本語言,用于web開發(fā)的前端腳本
    2011-05-05
  • 深入分析JavaScript 事件循環(huán)(Event Loop)

    深入分析JavaScript 事件循環(huán)(Event Loop)

    這篇文章主要介紹了JavaScript 事件循環(huán)(Event Loop)的的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06

最新評論