Arguments

作者: hcxowe | 来源:发表于2016-05-22 00:48 被阅读51次

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

相关文章

网友评论

    本文标题:Arguments

    本文链接:https://www.haomeiwen.com/subject/gweorttx.html