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 相关文章推荐
IE 条件注释详解总结(附实例代码)
Aug 29 Javascript
JS中prototype关键字的功能介绍及使用示例
Jul 21 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
解析js如何获取css样式
Dec 11 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
vue插件实现v-model功能
Sep 10 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
微信小程序云开发实现云数据库读写权限
May 17 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
基于js实现抽红包并分配代码实例
Sep 19 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
PHP在线生成二维码代码(google api)
2013/06/03 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
Python数据库小程序源代码
2019/09/15 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
Python3列表List入门知识附实例
2020/02/09 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
民生工程实施方案
2014/03/22 职场文书
企业文化演讲稿
2014/05/20 职场文书
党性分析自查总结
2014/10/14 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
小学教师教学反思
2016/02/24 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
Android存储中最基本的文件存储方式
2022/04/30 Java/Android