function fn(a,b){
document.write(a+'<br />');
document.write(b+'<br />');
}
fn(100,200,300,400)
像上面这种情况,函数只定了2个形参,但调用函数的时候却传了4个参数,
如果想要获取后面的2个参数,可以用 arguments 对象来获得,
arguments 对象有个属性 length ,用来获取函数里 实参 的个数【实际传了几个参数,length 的值就为几】;
arguments 的索引从0,1,2,3,... ... 递增,与实参逐个对应;
参照上面的例子,可以获得:
arguments[0] = 100;
arguments[1] = 200;
arguments[2] = 300;
arguments[3] = 400;
arguments 和 实参 相互为副本,
如果实参的值改变了,那么 arguments 对应的值也改变了;
如果arguments的值改变了,那么 实参 对应的值也改变了;
例如:
function fn(a,b){
document.write(a+'<br />');
document.write(b+'<br />');
document.write(arguments[0]+'<br />');
document.write(arguments[1]+'<br />');
document.write(arguments[2]+'<br />');
document.write(arguments[3]+'<br />');
document.write('<hr />');
a = 'AAAA';
document.write(arguments[0]+'<br />'); //打印出:AAAA
arguments[1] = 'BBBB';
document.write(b+'<br />'); //打印出:BBBB
}
fn(100,200,300,400)