arguments该对象代表正在执行的函数和调用他的函数的参数。
[function.]arguments[n]
参数function :选项。当前正在执行的 Function 对象的名字。
n :选项。要传递给 Function 对象的从0开始的参数值索引。
说明:Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。
Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际 传递给函数的参数,而不局限于函数声明所定义的参数列表也就是形参,而且不能显式创建 arguments 对象。
在此添加了一个说明arguments不是数组(Array类)的代码:
运行代码您会发现第一个alert显示1,这表示数组对象拥有selfvalue属性,值为1,而当您调用函数testAguments时,您会发现显示的是“undefined”,说明了不是arguments的属性,即arguments并不是个数组对象。
JavaScript函数不介意传递进来多少参数,也不会因为形参和实参的不统一而错误。实际上,函数体内可以通过arguments对象来接受传递进来的参数。从而实现动态传递参数。