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 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
javascript OFFICE控件测试代码
Dec 08 Javascript
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
js日期联动示例
May 02 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
Sep 17 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
js+canvas实现两张图片合并成一张图片的方法
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
杏林同学录(八)
2006/10/09 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
详解在Python程序中自定义异常的方法
2015/10/16 Python
python非递归全排列实现方法
2017/04/10 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
员工培训心得体会
2013/12/30 职场文书
超市国庆节促销方案
2014/02/20 职场文书
电视购物广告词
2014/03/19 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
法制工作总结2015
2015/07/23 职场文书
高中数学教学反思范文
2016/02/18 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书