Javascript中的arguments对象

作者:九成 时间:2024-04-30 09:50:54 

在js中一切都是对象,连函数也是对象,函数名其实是引用函数定义对象的变量。

1、什么是arguments?

这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的[i]和.length。

2、有什么作用?

js语法不支持重载!但可用arguments对象模拟重载效果。

arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。
arguments[i]: 获得传入的下标为i的参数值
arguments.length: 获得传入的参数个数!

重载:

程序中可定义多个相同函数名,不同参数列表的函数,
调用者不必区分每个函数的参数,
执行时,程序根据传入的参数个数,自动判断选择哪个函数执行。

例子如下:


// 1、如果用户传入一个参数,求平方
function sum(a){
console.log(a*a);
}
//如果用户传入两个参数,就求和
function sum(a,b){
console.log(a+b);
}
sum(4); //?
sum(4,5); //?

上述例子中本意是想让同名函数sum()根据参数不同输出不同结果,但是sum是函数名字,本质也是个变量,

第二个会覆盖第一个,所以上述的正确输出答案是:NaN,9.所以这样显然不可以。

如果用arguments,就简单多了。

如下2个例子:


//2、
function calc(){
//如果用户传入一个参数,求平方
if(arguments.length==1){
console.log(arguments[0]*arguments[0]);
}else if(arguments.length==2){
//如果用户传入两个参数,就求和
console.log(arguments[0]+arguments[1]);
}
}
calc(4); //16
calc(4,5); //9
/*3、无论用户传入几个数字,都可以求和*/
function add(){
//arguments:[]
//遍历arguments中每个元素,并累加
for(var i=0,sum=0;i<arguments.length;sum+=arguments[i++]);
return sum;//返回和
}
console.log(add(1,2,3)); //6
console.log(add(1,2,3,4,5,6)); //21

这就是JS利用arguments重载的效果,简单理解就是一个函数重复利用.

arguments.length是有实参决定,即函数调用时候里面的参数个数决定!

以上所述是小编给大家介绍的Javascript中的arguments对象的相关知识网站的支持!

标签:js,arguments,对象
0
投稿

猜你喜欢

  • 10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径

    2023-10-16 08:05:00
  • 基于Python+Pygame实现变异狗大战游戏

    2021-04-19 09:46:45
  • Python中使用dom模块生成XML文件示例

    2023-08-02 20:07:31
  • Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用

    2024-01-23 01:00:10
  • Express无法通过req.body获取请求传递的数据解决方法

    2024-06-05 09:52:06
  • Go语言使用Gob传输数据

    2023-08-06 05:12:28
  • 深入理解ES6中let和闭包

    2024-05-28 15:41:25
  • 详解小程序循环require之坑

    2024-02-24 03:38:29
  • 为网站代码块pre标签增加一个复制代码按钮代码

    2024-04-10 10:49:27
  • oracle 更改数据库名的方法

    2009-10-24 18:20:00
  • 使用python的pexpect模块,实现远程免密登录的示例

    2022-10-19 18:30:22
  • Python虚拟环境Virtualenv使用教程

    2022-04-15 00:22:21
  • python应用Axes3D绘图(批量梯度下降算法)

    2023-04-19 11:41:45
  • MySQL CHAR和VARCHAR存储、读取时的差别

    2024-01-22 20:54:58
  • 匿名函数的写法

    2010-01-06 13:32:00
  • Python matplotlib 动画绘制详情

    2022-04-12 14:36:52
  • 基于Python函数的作用域规则和闭包(详解)

    2023-09-03 09:00:28
  • 利用Python实现读取Word表格计算汇总并写入Excel

    2021-06-24 06:15:47
  • 获取SQL Server数据库元数据的几种方法

    2024-01-17 16:00:44
  • python中defaultdict用法实例详解

    2022-08-09 17:01:10
  • asp之家 网络编程 m.aspxhome.com