深入理解web前端

Arguments

2016-05-22  本文已影响51人  hcxowe

arguments

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

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
上一篇 下一篇

猜你喜欢

热点阅读