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、CSS以及img对DOMContentLoaded事件的影响
Aug 12 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 Javascript
jQuery选择器源码解读(二):select方法
Mar 31 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
JS请求servlet功能示例
Jun 01 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
在vue中通过axios异步使用echarts的方法
Jan 13 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
JS代码优化的8点建议
Feb 04 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
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 5.4 你必须要知道的
2013/08/07 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Python实现的归并排序算法示例
2017/11/21 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python常用库大全及简要说明
2020/01/17 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
幼儿园的门卫岗位职责
2014/04/10 职场文书
数学教研活动总结
2014/07/02 职场文书
台风停课通知
2015/04/24 职场文书
安全承诺书格式范本
2015/04/28 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
师范生教育见习总结
2015/06/23 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
vue的项目如何打包上线
2022/04/13 Vue.js