arguments
函数参数数组,他只定义在函数体中,函数体中arguments指代该函数的Argument对象。
-
arguments
不是数组,他只是拥有数字属性,可以当成数组来使用,含有传入函数的所有参数 -
arguments
本质上算是一个局部变量,每个函数都会声明并初始化- 只有在函数体中才是Argument对象,全局为undefined
Arguments
元素
Arguments对象只定义在函数体中,他是对象,拥有数字属性。
元素0是第一个参数,元素1是第二个参数,以此类推。
所有作为参数传入的值都将成为Arguments的属性-值。
属性
callee
指代当前正在执行的函数
length
传递给函数的参数个数
注意:非严格模式下,当函数带有命名的参数时,Arguments对象的元素跟参数的局部变量是等同的,他们是引用同一个值的两种方式,修改其中一个都会影响另一个的值
第一个console输出传入的'hello',之后通过arguments修改值,在输出x的时候变为'hcxowe'了~,说明两个x跟argument[0]引用同一个值
Arguments.callee
指代当前正在执行的函数,通过它可以引用匿名函数自身~
通过callee实现一个递归算阶乘的函数~
Arguments.length
传递函数的参数个数函数声明时期待传入的参数个数可以通过Function.length获取实际传入的参数通过Arguments.length获取