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