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聚焦于第一个字段的代码
Oct 15 Javascript
css值转换成数值请抛弃parseInt
Oct 24 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
jQuery操作基本控件方法实例分析
Dec 31 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 Javascript
Javascript中构造函数要注意的一些坑
Jan 23 Javascript
PHP7新特性简述
Jun 11 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
angular6开发steps步骤条组件
Jul 04 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
vue实现表格合并功能
Dec 01 Vue.js
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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python3实现生成随机密码的方法
2014/08/23 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
django和vue实现数据交互的方法
2019/08/21 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
应届生护士求职信
2013/11/01 职场文书
毕业求职自荐信格式是什么
2013/11/19 职场文书
技校毕业生自荐信
2014/06/03 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
简单的辞职信模板
2015/05/12 职场文书
入党自传范文2015
2015/06/26 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
python数字图像处理:图像简单滤波
2022/06/28 Python