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 字符串转换成数字的三种方法
Mar 23 Javascript
Node.js中npm常用命令大全
Jun 09 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
jQuery制作图片旋转效果
Feb 02 Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 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/11/19 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
cakephp常见知识点汇总
2017/02/24 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
layUI实现前端分页和后端分页
2019/07/27 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Python 变量类型及命名规则介绍
2013/06/08 Python
Python中实现的RC4算法
2015/02/14 Python
Python_LDA实现方法详解
2017/10/25 Python
对pandas处理json数据的方法详解
2019/02/08 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
python 基于wx实现音乐播放
2020/11/24 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
数据库专业英语
2012/11/30 面试题
学生拾金不昧表扬信
2014/01/21 职场文书
股份合作协议书
2014/09/10 职场文书
初二学生评语大全
2014/12/26 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
2016大一新生军训感言
2015/12/08 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers