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 相关文章推荐
location.search在客户端获取Url参数的方法
Jun 08 Javascript
JS中Date日期函数中的参数使用介绍
Jan 02 Javascript
js校验表单后提交表单的三种方法总结
Feb 28 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
Javascript实现基本运算器
Jul 15 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
vue结合axios与后端进行ajax交互的方法
Jul 06 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 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中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python中property属性实例解析
2018/02/10 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python的常用模块之collections模块详解
2018/12/06 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python语言基本语句用法总结
2019/06/11 Python
详解python调用cmd命令三种方法
2019/07/08 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
python实现的config文件读写功能示例
2019/09/24 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
农民入党思想汇报
2014/01/03 职场文书
企业项目策划书
2014/01/11 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
日语系毕业求职信
2014/07/27 职场文书
春节超市活动方案
2014/08/14 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
大学生党员个人总结
2015/02/13 职场文书
天河观后感
2015/06/11 职场文书
劳动模范获奖感言
2015/07/31 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python