在ECMAscript函数的参数与其他语言函数的参数有所不同,ECMAscript函数不介意传递进来多少个参数,也不在乎传递进来的参数是什么数据类型。也就是说那你在定义的时候定义了两个参数,但是在调用函数的时候也未必一定要传递两个参数。可以传递一个,三个更多或者不传都可以。原因是ECMAscript函数中的参数在内部使用一个数组来表示,函数接收到的始终是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓,如果包含多个元素也没有问题,实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
function howMangArgs(){
alert(arguments .length);
}
howMangArgs('string',45) ; // 2
howMangArgs() ; // 0
howMangArgs(45) ; // 1;
function toAdd(){
if(arguments .length ==1){
alert( arguments[0] +10);
}else if(arguments .length == 2){
alert( arguments[0] +arguments[1]);
}
}
toAdd(10) //20
toAdd(20,30) //50
网友评论