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 相关文章推荐
js继承 Base类的源码解析
Dec 30 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
Html5的placeholder属性(IE兼容)实现代码
Aug 30 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
Vue在页面数据渲染完成之后的调用方法
Sep 11 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
Aug 20 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
Node 模块原理与用法详解
May 13 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
PHP异常处理Exception类
2015/12/11 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
详解Python爬虫的基本写法
2016/01/08 Python
Python实现文件复制删除
2016/04/19 Python
python os模块简单应用示例
2019/05/23 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
劳资专员岗位职责
2013/12/27 职场文书
医院节能减排方案
2014/06/13 职场文书
买房协议书范本
2014/10/23 职场文书
2015大学生实训报告
2014/11/05 职场文书
三方合作意向书范本
2015/05/09 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记