函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型,原因是 ECMAScript 中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话),在函数体内可以通过 arguments 对象来访问这个参数数组,从而获取传递给函数的每一个参数,arguments 对象只是与数组类似(它并不是 Array 的实例),因为可以使用方括号语法访问它的每一个元素(即第一个元素是 arguments[0],第二个元素是 argumetns[1],以此类推),使用 length 属性来确定传递进来多少个参数
function howManyArgs() {
alert(arguments.length);}
howManyArgs("string", 45); //2
howManyArgs(); //0
howManyArgs(12); //1
function doAdd() {
if(arguments.length == 1) {
alert(arguments[0] + 10);
6} else if (arguments.length == 2) {
alert(arguments[0] + arguments[1]);
}
}
doAdd(10); //20
doAdd(30, 20); //50