JavaScript中如何通过arguments对象实现对象的重载


Posted in Javascript onMay 12, 2014
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Insert title here</title> 
<script type="text/javascript"> 
/* 
*1.js 中不存在函数的重载 
2.js函数定义时候的形参个数,和执行时候时,传递的实参的个数可以不一样。 
3.js执行时候,会将真实的参数,封装成组arguments */ 
function add(a){ 
return a+10; 
} 
var add=new Function("a","return a+10"); 
//alert(add(5)); 
function add(num1,num2){ 
return num1+num2; 
} 
var add=new Function("num1","num2","return num1+num2"); 
alert(add(5,6)); 
alert(add(5));//这样调用的结果是NaN:因为调用的时后定义的两个参数的函数 
//也就是虽然有var的声明,但是javascript中只要变量名称相同,后定义的就会覆盖 
//之前定义的=======得出的结论就是js中不存在函数的重载。 
//-------------------用arguments对象模拟方法的重载----- 
//-依据不同的参数个数,调用不同的代码块,最多25个参数 
function addNum(){ 
alert(arguments.length); 
for(var x=0;x<arguments.length;x++){ 
alert(arguments[x]); 
//这个对象只能爱函数体内 
} 
if(arguments.length==1){ 
return arguments[0]+10; 
}else if(arguments.length==2){ 
return arguments[0]+arguments[1]; 
}else{ 
return "参数错误,请核对"; 
} 
} 
var value=addNum(10,20,30); 
alert("函数的返回值:"+value);//结果value的值就是:"参数错误,请核对" 
//事实上,是通过参数的判断,去实现调用不同的函数功能,并且返回不同的值;这样做类似的实现了java中的重载 
//但是本质上,js中是没有重载的,相同的变量,在不同的位置出现,若赋值后,必然会覆盖前面声明的变量。当然 
//这里面排除掉函数内部的量和函数外部变量的这一种关系。 
</script> 
</head> 
<body> 
</body> 
</html>
Javascript 相关文章推荐
Java Mybatis框架入门基础教程
Sep 21 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
基于JavaScript实现移除(删除)数组中指定元素
Jan 04 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
Aug 03 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
详解Vue demo实现商品列表的展示
May 07 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 #Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 #Javascript
JavaScript中对象属性的添加和删除示例
May 12 #Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 #Javascript
Javascript中对象继承的实现小例
May 12 #Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
May 12 #Javascript
js图片处理示例代码
May 12 #Javascript
You might like
php与php MySQL 之间的关系
2009/07/17 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
python基础教程之udp端口扫描
2014/02/10 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Flask-Mail用法实例分析
2018/07/21 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
softmax及python实现过程解析
2019/09/30 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
python logging.info在终端没输出的解决
2020/05/12 Python
宝信软件JAVA工程师面试经历
2012/08/19 面试题
枚举与#define宏的区别
2014/04/30 面试题
聊城大学毕业生自荐书
2014/02/01 职场文书
酒店总经理助理职责
2014/02/12 职场文书
临时租车协议范本
2014/09/23 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
销售经理工作检讨书
2015/02/19 职场文书
nginx之queue的具体使用
2022/06/28 Servers