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 相关文章推荐
用脚本调用样式的几种方法
Dec 09 Javascript
javascript倒计时功能实现代码
Jun 07 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
jQuery链式操作实例分析
Nov 16 Javascript
AngularJS Bootstrap详细介绍及实例代码
Jul 28 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
Angular2 父子组件通信方式的示例
Jan 29 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
js刷新页面location.reload()用法详解
Dec 09 Javascript
微信小程序实现页面浮动导航
Jan 08 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
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
非功能性需求都包括哪些方面
2013/10/29 面试题
迟到检讨书400字
2014/01/13 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
2015年项目工作总结
2015/04/29 职场文书
2015教师节通讯稿
2015/07/20 职场文书
交通事故责任认定书
2015/08/06 职场文书
导游词之镇江焦山
2019/11/21 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS