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 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
js中匿名函数的N种写法
Sep 08 Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
js查看一个函数的执行时间实例代码
Sep 12 Javascript
footer定位页面底部(代码分享)
Mar 07 Javascript
VUE实现表单元素双向绑定(总结)
Aug 08 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 Javascript
vue使用keep-alive保持滚动条位置的实现方法
Apr 09 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 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循环输出数据库内容的代码
2008/05/24 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php中使用GD库做验证码
2016/03/31 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
Node.js学习入门
2017/01/03 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
Python list操作用法总结
2015/11/10 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
六查六看剖析材料
2014/02/15 职场文书
2014中考励志标语
2014/06/05 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
师德师风的心得体会
2014/09/02 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
初中生活随笔
2015/08/15 职场文书
Python+pyaudio实现音频控制示例详解
2022/07/23 Python
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript