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 相关文章推荐
JavaScript 10件让人费解的事情
Feb 15 Javascript
js控制frameSet示例
Sep 10 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
AngularJs expression详解及简单示例
Sep 01 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
May 03 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
AngularJS遍历获取数组元素的方法示例
Nov 11 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
vue项目或网页上实现文字转换成语音播放功能
Jun 09 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 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
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
Python3解释器知识点总结
2019/02/19 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
银行自荐信范文
2013/10/07 职场文书
回门宴父母答谢词
2014/01/26 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2014年环保工作总结
2014/11/26 职场文书
2015年护士节活动总结
2015/02/10 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
失恋33天观后感
2015/06/11 职场文书
护理工作心得体会
2016/01/22 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python