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 回调函数中变量作用域的讨论
Sep 11 Javascript
javascript代码加载优化方法
Jan 30 Javascript
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
利用js(jquery)操作Cookie的方法说明
Dec 19 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
Feb 05 Javascript
AngularJS日期格式化常见操作实例分析
May 17 Javascript
JS跨域请求的问题解析
Dec 03 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
JS函数进阶之prototy用法实例分析
Jan 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
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
实践Vim配置python开发环境
2018/07/02 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
小学教师办公室制度
2014/02/03 职场文书
小学数学国培感言
2014/03/10 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
单位婚育证明范本
2014/11/21 职场文书
学校计划生育责任书
2015/05/09 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS