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检测函数
May 31 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
Mar 02 Javascript
Node.js 8 中的重要新特性
Jun 28 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
Vue父子之间值传递的实例教程
Jul 02 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
JavaScript继承的三种方法实例
May 12 Javascript
js实现模拟购物商城案例
May 18 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
2014最热门的24个php类库汇总
2014/12/18 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
javascript 图片裁剪技巧解读
2012/11/15 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python查看列的唯一值方法
2018/07/17 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
演讲比赛获奖感言
2014/02/02 职场文书
会计学专业自荐信
2014/06/25 职场文书
人事专员岗位说明书
2014/07/29 职场文书
罚款通知怎么写
2015/04/22 职场文书
食品安全责任书范本
2015/05/09 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
安全教育培训心得体会
2016/01/15 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python