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 相关文章推荐
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
js判断某个方法是否存在实例代码
Jan 10 Javascript
jQuery解析XML文件同时动态增加js文件的方法
Jun 01 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 Javascript
node打造微信个人号机器人的方法示例
Apr 26 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
javascript实现左右缓动动画函数
Nov 25 Javascript
详解TypeScript中的类型保护
Apr 29 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
如何去掉文章里的 html 语法
2006/10/09 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP文件操作详解
2016/12/30 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
js自定义回调函数
2015/12/13 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
python的id()函数介绍
2013/02/10 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
2014年店长工作总结
2014/11/17 职场文书
优秀教师个人材料
2014/12/15 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
交通事故被告答辩状
2015/05/22 职场文书
大学生读书笔记大全
2015/07/01 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python