arguments对象
一、概念:
函数内置的一个类数组对象,存储了所有的实参。
二、属性:
实参个数:arguments.length
形参个数:函数名.length
arguments应用实例
实例一:定义一个函数,求两个数的和
function getSum(num1,num2){
console.log(arguments.length); //打印实参的个数
console.log(getSum.length);
if(arguments.length === getSum.length){ //判断实参和形参个数是否一致,若一致,求和,否则提示错误
console.log(num1+num2);
}else{
alert("实参和形参个数不一致");
}
}
实例二:定义一个函数,求任意数的和
function getSum2(){
var res = 0;
for(var i=0; i<arguments.length; i++){
res += arguments[i];
}
alert(res);
}
getSum2(1,2,3,4,5);
函数重载问题
函数的重载
函数名相同但参数个数不同的多个函数,传入不同的参数个数会调用对应的不同的函数。叫做函数的重载。
但是在js中,当代码中前后出现两个函数名相同但是参数不同的函数时,后边的函数会将前边的函数覆盖,达不到重载的目的。arguments可以帮助我们解决函数重载的问题。
继续拿上边的例子说明:
function getSum2(){
var res = 0;
for(var i=0; i<arguments.length; i++){
res += arguments[i];
}
alert(res);
}
getSum2(1,2,3,4,5); //传入五个实参,得到五个实参相加的和
getSum2(1,2); //传入两个实参,得到两个实参相加的和