ECMAscript参数在内部是用一个数组来表示的。

函数接收到的始终是这个数组,而不关心这个数组包含哪些参数,是否有参数,有几个参数。

在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。第一个元素是arguments[0],第二个是arguments[1]...以此类推。

使用arguments.length属性来确定传入多少个参数。

function howManyArgs(){

alert(arguments.length);

}

howManyArgs(10);

howManyArgs();

howManyArgs(10,20);

可以与命名参数一起使用

function doAdd(num1,num2){

if(arguments.length==1){

alert(num1+10);

}

else if(arguments.length==2){

alert(arguments[0]+num2);

}

}

doAdd(10);

doAdd(30,20);

 

ECMAscript中的所有参数传递都是值,不可能通过引用传递参数。

 

function setName(obj){

obj.name="Nicholas";

obj=new Object();

obj.name="Gray";

}

var person=new Object();

setName(person);

alert(person.name);  //"Nicholas",如果是引用传递,则结果应为"Gray"

posted on 2012-01-19 16:01  Ballad1939  阅读(127)  评论(0)    收藏  举报