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下判断IE与FF的比较简单的方式
Oct 17 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
Mar 04 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 Javascript
javascript检测两个数组是否相似
May 19 Javascript
jquery获取复选框的值的简单实例
May 26 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
May 29 Javascript
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 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
用session做客户验证时的注意事项
2006/10/09 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
通过源码分析Python中的切片赋值
2017/05/08 Python
python实现list由于numpy array的转换
2018/04/04 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
Windows下python3.7安装教程
2018/07/31 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
创先争优制度
2014/01/21 职场文书
公开服务承诺制度
2014/03/26 职场文书
培训协议书范本
2014/04/22 职场文书
环保建议书100字
2014/05/14 职场文书
高中同学会活动方案
2014/08/14 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
如何书写授权委托书?
2019/06/25 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
使用nginx配置访问wgcloud的方法
2021/06/26 Servers