在调用函数时,我们有时候需要为某些函数传递一个,或者两个,更或者数量不定的参数。这时候我们所定义的函数可以不写传入的参数仍可以接受参数,无论参数数量多少。这是因为在ECMAScript中参数在内部为我们建立了一个数组来接受表示它们,而这个数组就是arguments。
简单明了,arguments就是接收不定参,但arguments对象只是一个伪数组,并不是Array的实例。我们可以通过arguments.length来查看传入参数的数量,通过arguments[]的方式访问获取参数。好了解释完了,我们来看一个例子加深印象。
这个例子是通过对arguments枚举获取传入的参数
function auto() {
var a = arguments;
var arr = [];
for(var key in a) {
arr.push(a[key]);
}
return arr;
}
alert(auto('a','b','c','d'));
结果如下: