JavaScript中的arguments属性
在函数体内,标识符arguments
是指向实参对象的引用,实参对象是一个类数组对象arguments[]
,有length
属性arguments.length
arguments
是收到的实参副本,在词法分析中,首先按照形参形成AO的属性,值为undefined
,当实参传来时,再修改AO的相应属性;- 把收到的所有实参收集起来,放到一个
arguments
对象,当实际调用时传入的参数大于形参的个数时,AO属性中的属性个数不变,arguments
中会保存所有传入的实参,对于超出形参个数的实参,可以通过arguments
来获得; arguments
的索引与数组相同,从0开始递增arguments
不是数组,只是与数组具有相似的length
属性arguments
在每个函数中都是存在的,因此,调用时会现在自身中寻找,无法找到时会在外层中寻找。
arguments的特性
- 函数只需要在本函数中查找函数的实参,不用去上层中查找
arguments
具有隐私性,和变量不一样- 可以使用这个属性来实现函数的多态