可变长的实参列表,实参对象arguments

来源:互联网 发布:知乎分享到朋友圈 编辑:程序博客网 时间:2024/05/19 10:56
                                       //验证实参的个数
function f(x,y,z)
{
//验证传入实参的个数是否正确
if(arguments.length !=3)
{
throw new Error("function f called with" + arguments.length +
"arguments,but it expects 3 arguments.");
}
//在执行函数的其他逻辑
}

//接收任意数量的实参(不定实参函数)
//function max(/*...*/)
{
var max =Number.NEGATIVE_INFINITY;
//遍历实参,查找并记住最大值
for(var i = 0; i < arguments.length; i++)
if(arguments[i] > max) max = arguments[i];
return max;
}
var largest = max(1,10,100,2,3,1000,4,5,20000,6);

alert(largest);

  注意:不定实参函数的实参个数不能为零,arguments[]对象最适合的应用场景是在这样一类函数中,这类函数包含固定个数的命名和必需参数,以及随后个数不定的可选参数。但,arguments并不是真正的数组,他是一个实参对象。每个实参对象都包含以数字为索引的一组元素以及length属性,但他毕竟不是真正的数组。它是一个对象,只是碰巧具有以数字为索引的属性。