Arguments

arguments

函数参数数组,他只定义在函数体中,函数体中arguments指代该函数的Argument对象。

  • arguments不是数组,他只是拥有数字属性,可以当成数组来使用,含有传入函数的所有参数
  • arguments本质上算是一个局部变量,每个函数都会声明并初始化- 只有在函数体中才是Argument对象,全局为undefined

Arguments

元素

Arguments对象只定义在函数体中,他是对象,拥有数字属性。
元素0是第一个参数,元素1是第二个参数,以此类推。
所有作为参数传入的值都将成为Arguments的属性-值。

属性

callee
指代当前正在执行的函数
length
传递给函数的参数个数

注意:非严格模式下,当函数带有命名的参数时,Arguments对象的元素跟参数的局部变量是等同的,他们是引用同一个值的两种方式,修改其中一个都会影响另一个的值

Paste_Image.png

第一个console输出传入的'hello',之后通过arguments修改值,在输出x的时候变为'hcxowe'了~,说明两个x跟argument[0]引用同一个值

Arguments.callee

指代当前正在执行的函数,通过它可以引用匿名函数自身~

Paste_Image.png

通过callee实现一个递归算阶乘的函数~

Arguments.length

传递函数的参数个数函数声明时期待传入的参数个数可以通过Function.length获取实际传入的参数通过Arguments.length获取

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容