本文摘自PHP中文网,作者青灯夜游,侵删。
javascript arguments对象的用法:1、获取实参和形参的个数;2、修改实参值;3、改变实参的个数;4、检测用户传递的参数是否符合要求;5、函数的参数个数不确定时,用于访问调用函数的实参值;6、遍历或访问实参的值。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
arguments 对象表示函数的实参集合,仅能够在函数体内可见,并可以直接访问。
arguments 对象的 length 属性和 callee 属性最为常用:
使用 length 属性可以获取函数的实参个数。arguments 对象只能在函数体内可见,因此 arguments.length 也只能在函数体内使用。
使用 callee 属性可以引用当前 arguments 对象所在的函数。使用 callee 属性可以在函数体内调用函数自身。在匿名函数中,callee 属性比较有用。例如,利用它可以设计递归调用。
示例1:获取实参和形参的个数
使用 arguments.length 属性可以获取函数的实参个数。使用函数对象的 length 属性可以获取函数的形参个数,该属性为只读属性,在函数体内、体外都可以使用。
下面示例设计一个 checkArg() 函数,用来检测一个函数的形参和实参是否一致,如果不一致则抛出异常。
1 2 3 4 5 6 7 8 9 |
|
示例2:在函数内部修改实参的值
在下面示例中使用 for 循环遍历 arguments 对象,然后把循环变量的值传入 arguments,以便于改变实参值。
1 2 3 4 5 6 7 |
|
示例3:改变函数实参的个数
通过修改 length 属性值,也可以改变函数的实参个数。当 length 属性值增大时,则增加的实参值为 undefined;如果 length 属性值减小,则会丢弃 length 长度值之后的实参值。
1 2 3 4 5 6 7 |
|
示例4:检测用户传递的参数是否符合要求
在下面示例中,使用 arguments.callee 获取匿名函数,然后通过函数的 length 属性获取函数形参个数,最后比较实参个数与形参个数,以检测用户传递的参数是否符合要求。
1 2 3 4 5 6 7 8 9 10 |
|
arguments.callee 等价于函数名,在上面示例中,arguments.callee 等于 f。
arguments 对象的应用
在实际开发中,arguments 对象非常有用。灵活使用 arguments 对象,可以提升使用函数的灵活性,增强函数在抽象编程中的适应能力和纠错能力。下面结合几个典型示例展示 arguments 的应用。
1) 使用 arguments 对象能够增强函数应用的灵活性。例如,如果函数的参数个数不确定,或者函数的参数个数很多,而又不想逐一定义每一个形参,则可以省略定义参数,直接在函数体内使用 arguments 对象来访问调用函数的实参值。
示例1
下面示例定义一个求平均值的函数,该函数借助 arguments 对象来计算参数的平均值。在调用函数时,可以传入任意多个参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
示例2
在页面设计中经常需要验证表单输入值,下面示例检测文本框输入的值是否为合法的邮箱地址。
1 2 3 4 5 6 7 8 9 10 |
|
2) arguments 对象是伪类数组,不是数组,可以通过 length 属性和中括号语法来遍历或访问实参的值。不过,通过动态调用的方法,也可以使用数组的方法,如 push、pop、slice 等。
示例3
使用 arguments 可以模拟重载。实现方法:通过 arguments.length 属性值判断实际参数的个数和类型,决定执行不同的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
示例4
下面示例使用动态调用的方法,让 arguments 对象调用数组方法 slice(),可以把函数的参数对象转换为数组。
1 2 3 4 |
|
【推荐学习:javascript高级教程】
以上就是javascript arguments对象怎么用的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者