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 相关文章推荐
简单谈谈javascript代码复用模式
Jan 28 Javascript
jQuery插件Tmpl的简单使用方法
Apr 27 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
Jul 18 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
Jan 21 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
Aug 30 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
Vue Element使用icon图标教程详解(第三方)
Feb 07 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
vue2.0实现列表数据增加和删除
Jun 17 Javascript
JavaScript实现消消乐的源代码
Jan 12 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
openPNE常用方法分享
2011/11/29 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
Python正则表达式的使用范例详解
2014/08/08 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
PyTorch中permute的用法详解
2019/12/30 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
自荐信格式范文
2013/10/07 职场文书
上班上网检讨书
2014/01/29 职场文书
毕业自我评价
2014/02/05 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
总经理岗位职责范本
2015/04/01 职场文书
小英雄雨来观后感
2015/06/09 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
基于python制作简易版学生信息管理系统
2021/04/20 Python