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 相关文章推荐
Firefox和IE浏览器兼容JS脚本写法小结
Jul 07 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
javascript特殊用法示例介绍
Nov 29 Javascript
javascipt:filter过滤介绍及使用
Sep 10 Javascript
详谈for循环里面的break和continue语句
Jul 20 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
Oct 25 Javascript
在Swiper内如何制作CSS3动画效果示例代码
Dec 07 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
微信小程序服务器日期格式化问题
Jan 07 Javascript
vue 实现用户登录方式的切换功能
Apr 14 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
Apr 27 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解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
js闭包的用途详解
2014/11/09 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
给医务人员表扬信
2014/01/12 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
讲座主持词
2014/03/20 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
Python Flask实现进度条
2022/05/11 Python