arguments

arguments:数组

一、arguments:(类数组)是函数内置接收参数的机制。函数

  内置:天生自带的,无论你是否传递了形参,也无论是否写了形参,arguments一直都存在。spa

 

  : arguments 即能读,又能改,是一个实参的集合。索引

  (有数字做为索引,索引从0开始表明第几个传递的参数;还有一个length的属性表明传递了多少个参数;除此以外还有callee属性:arguments.callee表明的是当前函数的自己)作用域

 

    fn1(1,2,3);           // 实参——实际传递参数io

  function fn1(a,b,c){}    // 形参——形式上,abc这些名表明123  function

// 即便不写形参的名,也能够进行传递。都存在了arguments里面call

//  arguments => [1,2,3]——实参的集合集合

 

二、fn1(1,2,3);co

  function fn1(){

     alert(arguments.length);                 // 3  虽然不是数组,可是也有length属性

     alert(arguments[arguments.length-1]);   // 若是想要找到实参集合中的任何一个,能够相似于经过数组下标的位置找到集合中的任意一个

     alert(arguments[0]);                                 // 1

  };

 

三、小实例

  当函数参数的个数没法肯定的时候:用arguments

  alert(sum(1,2,3));         // 相加得6

  alert(sum(1,2,3,4));      // 相加得10

  function sum(){

    var n = 0;

    for(var i=0;i<arguments,length;i++){

      n += arguments[i];

    }

    return n;

  };

 

四、arguments 与做用域的关系

   var a = 1;

  function fn2(a){

    arguments[0] = 3;

    alert(a);                         // 3

    var a = 2;

    alert(arguments[0]);       // 2

  };

  fn2(a);

  alert(a);                               // 1

相关文章
相关标签/搜索