js argument实参集合与局部变量、参数关系
形参
形式上传递的参数
function fn1(a,b,c) {//a,b,c就是形参
实参
实际传递的参数
fn1 (1,2,5);//1,2,5就是实参
argument
定义: 实参的集合
用法:
e.g.1直接返回
fn1 (1,2,5);
function fn1() {
alert(arguments);//object arguments(注意返回的不是1,2,5)
}
e.g.2返回长度
fn1 (1,2,5);
function fn1() {
alert(arguments.length);//3,有三个实参所以长度是三
}
e.g.3 返回某一个实参
fn1 (1,2,5);
function fn1(a,b,c) {
alert(arguments[arguments.length-1]);//5
}
作用:当函数的参数无法确定时,用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;
}
argument与作用与的关系
var a=1;
function fn2(a) {
arguments[0] = 3;
alert(a);//3
var a=2;
alert(arguments[0]);//2
}
fn2(a);
alert(a);//1(没传进去?)
若到江南赶上春,千万和春住