zoukankan      html  css  js  c++  java
  • arguments对象

    arguments

    arguments:它是javascript中函数隐含的参数,该对象代表着正在执行的函数和调用它的函数的参数。

    [function.]arguments[n]

    参数function :选项。当前正在执行的 Function 对象的名字。n :选项。要传递给 function 对象的从0开始的参数值索引。

    说明:

    Arguments是在函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。Arguments是一个类似数组但并不是数组的对象。它类似数组是因为访问它的方式和数组一样,可以通过

    argumets[n]这样的方式来访问对应的每个参数的值,还拥有数组长度属性length,其中n的值是从0开始。最重要的一点:arguments对象存储的是实际传递给函数的参数,而不是函数

    声明时所定义的参数列表,而且也不能显示的去创建arguments对象。arguments对象只有在函数开始时才可以用。

    下面是arguments对象的用法:

    function test(a,b,c){
      var funLen = test.length;              // 这个值表示的是函数声明时的参数个数,这里是3            
      var argLen = arguments.length;         // 这个值是实际传递给函数的参数个数,从下面调用可以看出这里只传递了一个值,故值为1
      alert("funLen=" + funLen + " ,argLen=" +  argLen);   // 结果:fuLen=3 ,argLen=1 
    }
    
    test(1);
    

    上面的例子表示arguments对象存储的是实际传递给函数的参数,arguments.length表示的是实际传个函数的参数的个数。上面test.length这种方式也就是通过函数名.length的方式获取到

    的值是函数声明时所定义的参数列表的个数。

    arguments值的修改:

    function test(x,y,a){
      arguments[2] = 10;
      alert("a=" + a);    // 结果是a=10
    }
    
    test(1,2,3);
    

      

    function test(x,y,a) {
      a = 10;
      alert("arguments[2]=" + arguments[2]); // 结果是arguments[2]=10  
    }
    
    test(1,2,3);
    

     arguments不是数组(Array类)的代码:

    Array.prototype.setValue = 1;
    alert(new Array().setValue);   // 1
     
    functiion test(){
      alert(arguments.setValue);  // undefined      
    }
    

    从上面代码运行的结果可以看出,Array对象扩展了一个setValue的属性,并且值为1,但是当调用test()方法是,会发现结果为undefined,这就说明了setValue不是arguments的属性,

    也就是说arguments不是一个数组对象。

    原文地址:http://www.cnblogs.com/AganCN/articles/1206270.html

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/b302/p/4255206.html
Copyright © 2011-2022 走看看