最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript arguments使用示例

 更新時間:2014年12月16日 10:46:33   投稿:hebedich  
這篇文章主要通過一個實例,簡單介紹了javascript arguments使用方法,小伙伴們參考下。

復(fù)制代碼 代碼如下:

<script Language="JavaScript">
//第一個參數(shù)值.
function test(a,b,c,d){
  alert(arguments[0]);
}
//arguments[0]實際上就是a,同理,arguments[1]就是b,依次c,d
</script>

 
復(fù)制代碼 代碼如下:

 <script Language="JavaScript">
{
    function function_Name(exp1,exp2,exp3,exp4)
    {
        var umber="";
        umber=arguments.length;
        alert(umber);
    }
            function_Name('a','b','c','d');         都可以調(diào)用
        //    function_Name("a","b","c","d");     都可以調(diào)用
}
</script>

1、在JavaScript中,arguments對象是比較特別的一個對象,實際上是當(dāng)前函數(shù)的一個內(nèi)置屬性。arguments非常類似Array,但實際上又不是一個Array實例??梢酝ㄟ^如下代碼得以證實(當(dāng)然,實際上,在函數(shù)funcArg中,調(diào)用arguments是不必要寫成funcArg.arguments,直接寫arguments即可)。

復(fù)制代碼 代碼如下:

 Array.prototype.testArg = "test";
 function funcArg() {
     alert(funcArg.arguments.testArg); 
     alert(funcArg.arguments[0]);
 }
 alert(new Array().testArg); // result: "test"
 funcArg(10);                // result: "undefined"  "10"

2、arguments對象的長度是由實參個數(shù)而不是形參個數(shù)決定的。形參是函數(shù)內(nèi)部重新開辟內(nèi)存空間存儲的變量,但是其與arguments對象內(nèi)存空間并不重疊。對于arguments和值都存在的情況下,兩者值是同步的,但是針對其中一個無值的情況下,對于此無值的情形值不會得以同步。如下代碼可以得以驗證。

復(fù)制代碼 代碼如下:

 function f(a, b, c){
     alert(arguments.length);   // result: "2"
     a = 100;
     alert(arguments[0]);       // result: "100"
     arguments[0] = "qqyumidi";
     alert(a);                  // result: "qqyumidi"
     alert(c);                  // result: "undefined"
     c = 2012;
     alert(arguments[2]);       // result: "undefined"
 }
 f(1, 2);

3、由JavaScript中函數(shù)的聲明和調(diào)用特性,可以看出JavaScript中函數(shù)是不能重載的。

根據(jù)其他語言中重載的依據(jù):"函數(shù)返回值不同或形參個數(shù)不同",我們可以得出上述結(jié)論:

第一:Javascript函數(shù)的聲明是沒有返回值類型這一說法的;

第二:JavaScript中形參的個數(shù)嚴(yán)格意義上來講只是為了方便在函數(shù)中的變量操作,實際上實參已經(jīng)存儲在arguments對象中了。

另外,從JavaScript函數(shù)本身深入理解為什么JavaScript中函數(shù)是不能重載的:在JavaScript中,函數(shù)其實也是對象,函數(shù)名是關(guān)于函數(shù)的引用,或者說函數(shù)名本身就是變量。對于如下所示的函數(shù)聲明與函數(shù)表達式,其實含以上是一樣的(在不考慮函數(shù)聲明與函數(shù)表達式區(qū)別的前提下),非常有利于我們理解JavaScript中函數(shù)是不能重載的這一特性。

復(fù)制代碼 代碼如下:

 function f(a){
     return a + 10;
 }
 function f(a){
     return a - 10;
 }
 // 在不考慮函數(shù)聲明與函數(shù)表達式區(qū)別的前提下,其等價于如下
 var f = function(a){
     return a + 10;
 }
 var f = function(a){
     return a - 10;
 }

4、arguments對象中有一個非常有用的屬性:callee。arguments.callee返回此arguments對象所在的當(dāng)前函數(shù)引用。在使用函數(shù)遞歸調(diào)用時推薦使用arguments.callee代替函數(shù)名本身。

如下:

復(fù)制代碼 代碼如下:

 function count(a){
     if(a==1){
         return 1;
     }
     return a + arguments.callee(--a);
 }
 var mm = count(10);
 alert(mm);

相關(guān)文章

最新評論

西平县| 南岸区| 华安县| 荃湾区| 汶上县| 牡丹江市| 葵青区| 辽阳县| 宣化县| 祁连县| 永济市| 德惠市| 湟源县| 漯河市| 阳城县| 武安市| 海门市| 尼玛县| 南靖县| 辽源市| 千阳县| 永川市| 崇阳县| 新泰市| 包头市| 张家界市| 唐海县| 镇平县| 陇川县| 寿阳县| 浏阳市| 泰安市| 酉阳| 白河县| 三江| 洞口县| 叶城县| 庐江县| 榆中县| 临邑县| 南开区|