在javascript中可以用arguments对象判断传递给函数的参数个数,即可模拟函数重载:
function toAdd(){
if(arguments.length==1){
return arguments[0]+5;
}else if(arguments.length==2){
return arguments[0]+arguments[1];
}
}
toAdd(10); //15
toAdd(20,30);//50
用arguments可以得到传入的参数个数,和每个参数是什么:
function text(){
//参数的个数arguments.length
for(var i=0;i<arguments.length;i++){
alert(arguments[i]); //弹出每个参数
}
}
ECMAScript不会验证传递给函数的参数个数是否等于函数定义的参数个数,定义的函数可以接受任意个数的参数(根据Netscape文档,最多可接受25个参数),而不会引发任何错误。任何遗漏的参数都会已undefined传递给参数,多余的参数将会被忽略。
如果需要确定函数中实际有多少个参数,可以用函数名.length的方法来获取。