Javascript中的arguments对象


Posted in Javascript onJune 20, 2016

在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对象的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery小知识
Oct 15 Javascript
基于jquery的多功能软键盘插件
Jul 25 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
Jun 23 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
jQuery实现验证码功能
Mar 17 Javascript
React Native之ListView实现九宫格效果的示例
Aug 02 Javascript
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
微信小程序实现倒计时调用相机自动拍照功能
Jun 10 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
原生JS实现天气预报
Jun 16 Javascript
JavaScript 数组去重详解
Sep 15 Javascript
JavaScript中获取HTML元素值的三种方法
Jun 20 #Javascript
BootStrap selectpicker
Jun 20 #Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 #Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 #Javascript
js 获取经纬度的实现方法
Jun 20 #Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 #Javascript
JS作为值的函数用法示例
Jun 20 #Javascript
You might like
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php数组使用规则分析
2015/02/27 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
python实现外卖信息管理系统
2018/01/11 Python
详解Python中where()函数的用法
2018/03/27 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
Android面试宝典
2013/08/06 面试题
Python里面如何拷贝一个对象
2014/02/17 面试题
月度优秀员工获奖感言
2014/08/16 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
机器人总动员观后感
2015/06/09 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
golang正则之命名分组方式
2021/04/25 Golang