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加解密 脚本解密
Feb 22 Javascript
jquery CSS选择器笔记
Mar 29 Javascript
javascript中注册和移除事件的4种方式
Mar 20 Javascript
父节点获取子节点的字符串示例代码
Feb 26 Javascript
JavaScript中的分号插入机制详细介绍
Feb 11 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
解析ajaxFileUpload 异步上传文件简单使用
Dec 30 Javascript
详解用node编写自己的cli工具
May 23 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
谈谈node.js中的模块系统
Sep 01 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生成静态页面详解
2006/11/19 PHP
php 分页函数multi() discuz
2009/06/21 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
Python实现获取网站PR及百度权重
2015/01/21 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Pytorch中.new()的作用详解
2020/02/18 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
优秀大学生推荐信范文
2013/11/28 职场文书
关于读书的活动方案
2014/08/14 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
爱的教育读书笔记
2015/06/26 职场文书
python 实现的截屏工具
2021/05/08 Python