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 相关文章推荐
jquery uaMatch源代码
Feb 14 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
jquery submit ie6下失效的原因分析及解决方法
Nov 15 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
JS+CSS实现表格高亮的方法
Aug 05 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 Javascript
基于Cookie常用操作以及属性介绍
Sep 07 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
Nov 26 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
JS基于对象的链表实现与使用方法示例
Jan 31 Javascript
Vue 实现从小到大的横向滑动效果详解
Oct 16 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学习之变量的使用
2011/05/29 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
使用K.function()调试keras操作
2020/06/17 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
历史学专业个人的自我评价
2013/10/13 职场文书
大学生见习报告总结
2014/11/04 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
优秀党员事迹材料
2014/12/18 职场文书
党员争先创优承诺书
2015/01/20 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python