js中的arguments属性
一、arguments属性——实参的集合
1、arguments 即可读又可写
2、arguments对象只有函数开始时才可用
3、虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的 方式相同
2、arguments对象只有函数开始时才可用
3、虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的 方式相同
4、当函数的参数个数无法确定时,就用arguments进行传参
5、使用arguments时,不需要形参,实参自然存在arguments内
5、使用arguments时,不需要形参,实参自然存在arguments内
二、argument的一些样例
代码如下:
1、fn1(1,2,3);//实参——实际传递的参数
//function fn1(a,b,c)//形参——形式上,abc这些名代表123
function fn1(){
//arguments == [1,2,3]——实参的集合
//alert(arguments);
//alert(arguments[0]); // 返回的值为1
//alert(arguments.length); //返回的值为3
}
//function fn1(a,b,c)//形参——形式上,abc这些名代表123
function fn1(){
//arguments == [1,2,3]——实参的集合
//alert(arguments);
//alert(arguments[0]); // 返回的值为1
//alert(arguments.length); //返回的值为3
}
2、alert(sum(1,2,3)); //6
alert(sum(1,2,3,4)); //10
function sum(){ //sum 求和函数
var n = 0;
for( var i=0;i<arguments.length;i++){
n += arguments[i];
}
return n;
}
alert(sum(1,2,3,4)); //10
function sum(){ //sum 求和函数
var n = 0;
for( var i=0;i<arguments.length;i++){
n += arguments[i];
}
return n;
}
3、arguments 与作用域也有关系
var a = 1;
function fn1(a){
arguments[0] = 3;
alert(a);
var a = 2;
alert(arguments[0]);
}
fn1(a);
alert(a);
在上述代码中arguments、var a 其实是相同的含义都是参数,改变他们中的 任意一个值都是改变他们的值。但是改变的都是函数内部的局部变量的值,全 局变量的值并没有被改变。
var a = 1;
function fn1(a){
arguments[0] = 3;
alert(a);
var a = 2;
alert(arguments[0]);
}
fn1(a);
alert(a);
在上述代码中arguments、var a 其实是相同的含义都是参数,改变他们中的 任意一个值都是改变他们的值。但是改变的都是函数内部的局部变量的值,全 局变量的值并没有被改变。