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

相關文章
相關標籤/搜索