JavaScript arguments

JavaScript arguments教程

JavaScript 中,arguments 对象是比较特别的一个 对象,实际上是当前 函数 的一个内置属性。也就是说所有函数都内置了一个 arguments 对象。

arguments 对象中存储了传递的所有的 实参,arguments 是一个 伪数组,因此可以进行遍历。

JavaScript arguments详解

语法

function myFunc(){ //arguments[0]; //arguments[1]; //arguments[2]; }

说明

在函数内部,arguments 对象中存储了传递的所有的实参,且 arguments 是一个伪数组,因此我们可以通过下标索引获取每一个参数,也可以进行遍历获取所有参数。

JavaScript arguments常用方法

函数 说明
arguments.callee arguments 所在的函数,指向当前执行的函数
arguments.caller 指向调用当前函数的函数
arguments.length 获得长度,实参的个数
arguments[i] 通过遍历索引,获得每个实参

案例

JavaScript arguments

通过 JavaScript arguments获取函数所有参数

<!DOCTYPE html> <html> <head> <title>JavaScript arguments</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function walk(){ for(var i = 0; i < arguments.length; i++){ console.log("arg =", arguments[i]); } } walk(1, 50, 100, 500); </script> </head> </html>

程序运行后,控制台输出如下:

09_javascript arguments.png

我们定义了一个函数 walk,该函数声明时没有显式声明任何参数,在该函数里,我们使用 for 循环 加上 arguments 遍历了该函数的所有的实参。

最后,在调用该函数时,我们传入了四个参数,我们发现,我们在 walk 函数里面通过 arguments 获取了所有传入的参数。

JavaScript arguments参数

通过 JavaScript arguments 参数求和

<!DOCTYPE html> <html> <head> <title>JavaScript arguments</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function sum(){ var sum = 0; for(var i = 0; i < arguments.length; i++){ sum += arguments[i]; } return sum; } var ret = sum(5, 50, 500, 5000); console.log("Ret =", ret); </script> </head> </html>

程序运行后,控制台输出如下:

10_javascript arguments.png

我们定义了一个函数 sum,该函数声明时没有显式声明任何参数,在该函数里,我们使用 for 循环遍历 arguments 的每一个函数并求和。

最后,在调用该函数时,我们传入了四个参数,最终,我们求出了这四个参数的和。

JavaScript arguments转数组

通过 Array.from 函数将 JavaScript arguments 转成数组

<!DOCTYPE html> <html> <head> <title>JavaScript arguments转数组</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function walk(){ var args = Array.from(arguments); console.log(args); } walk(5, 50, 500, 5000); </script> </head> </html>

程序运行后,控制台输出如下:

11_javascript arguments.png

我们在函数 walk 中,使用 Array.from 将函数的 arguments 转成了数组。

JavaScript arguments总结

在 JavaScript 中,arguments 对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个 arguments 对象。

arguments 对象中存储了传递的所有的实参,arguments 是一个伪数组,因此可以进行遍历。