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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
写出更好的JavaScript之undefined篇(上)
Nov 22 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
基于jquery实现的树形菜单效果代码
Sep 06 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
vue实现搜索功能
May 28 Javascript
利用不到200行代码写一款属于你自己的js类库
Jul 08 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写的serv-u的web申请账号的程序
2006/10/09 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
html5+javascript制作简易画板附图
2014/04/25 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
利用Python为iOS10生成图标和截屏
2016/09/24 Python
详解Python的Lambda函数与排序
2016/10/25 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
浅析Python数据处理
2018/05/02 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
会计应届生的自荐信
2013/12/13 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
司机工作自我鉴定
2014/09/19 职场文书
荆州古城导游词
2015/02/06 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
Python函数对象与闭包函数
2022/04/13 Python