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"
 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号