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 相关文章推荐
javascript实现按回车键切换焦点
Feb 09 Javascript
JavaScript中constructor()方法的使用简介
Jun 05 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
BootStrap给table表格的每一行添加一个按钮事件
Sep 07 Javascript
vue实现点击展开点击收起效果
Apr 27 Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
Jul 10 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
js实现视图和数据双向绑定的方法分析
Feb 05 Javascript
如何在vue-cli中使用css-loader实现css module
Jan 07 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
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
js 目录列举函数
2008/11/06 Javascript
jquery 学习笔记一
2010/04/07 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
详解Python做一个名片管理系统
2019/03/14 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
python的Jenkins接口调用方式
2020/05/12 Python
Python devel安装失败问题解决方案
2020/06/09 Python
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
办公室主任岗位职责
2013/11/08 职场文书
幼儿园家长寄语
2014/04/02 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
通知范文怎么写
2015/04/16 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js
从原生JavaScript到React深入理解
2022/07/23 Javascript