JavaScript-Arguments 对象讲解
元素
Arguments对象只在函数体中定义。虽然技术上说来,它不是数组,但Arguments对象有带编号的属性,这些属性可以作为数组元素,而且它有length属性,该属性声明了数组元素的个数。它的元素是作为参数传递给函数的值。元素0是第—个参数,元素1是第二个参数,以此类推。所有作为参数传递的值都会成为Arguments对象的数组元素,无论函数声明中是否有这些参数的名字。
属性
描述
当一个函数被调用时,会为该函数创建一个Arguments对象,局部变量arguments也会自动地初始化以便引用那个Arguments对象。Arguments对象的主要用途是提供一种方法,用来确定传递给函数的参数个数并且引用未命名的参数。除了数组元素和属性length之外,属性callee可以使未命名的函数引用自身。
大多数情况下,可以将Arguments对象看做是具有callee属性的数组。但它不是Array类的实例,Arguments.1ength属性没有Array.1ength属性的专有行为,所以不能用它来改变数组的大小。
Arguments对象有一个非常特殊的特性。当函数具有命名的参数时,Arguments对象的数组元素是存放函数参数的局部变量的同义词。Arguments对象和参数名提供了引用同一个变量的两种不同方法。用参数名改变参数值,会改变用Arguments对象得到的值,改变用Arguments对象得到的参数值,也会改变用参数名得到的值。
此文章摘抄于一篇javascript的使用手册