在介绍arguments对象前,我们先简单的看一下如下一段函数
function sum(x,y)
{
var result=x+y;
console.log(result);
}
sum(1);
sum(1,3);
sum(4,6,7)
那么在控制台的输出的结果为?大家思考一下。想必大家都知道了
sum(1)———>控制台输出结果为NaN;
sum(1,3)——->控制台输出结果为4;
sum(4,6,7)——–>控制台输出的结果为10
我们在定义函数时,函数里面参数是形参,而我们在调用时里面传递的是实参,当实参比形参个数少时,就如同sum(1),第一个参数x是1,而第二个参数y是undefine,所以在进行求和运算时,得到结果为NaN.当实参个数多余形参个数时,就会按形参个数进行匹配。sum(4,6,7)就把前面两个实参传递进去,得到10。
其实我们可以采用js中的内置对象arguments,注意这货是对象,而不是数组。js中主要的函数都有一个arguments对象。arguments内部可以理解成为一个类似数组,当它不是数组,它的长度由实参个数而定。
那上面的求和函数可以这样改写
function sum()
{
//定义一个变量来保存
var result=0;
for(var i=0;i<arguments.length;i++)
{
result+=arguments[i];
}
console.log(result);
return result;
}
这样我们利用一个函数就可以求n个数的和