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学习之闭包分析
Dec 02 Javascript
jQuery插件开发详细教程
Jun 06 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
Bootstrap基础学习
Jun 16 Javascript
易操作的jQuery表单提示插件
Dec 01 Javascript
jquery插件jquery.confirm弹出确认消息
Dec 22 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
Jan 05 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
ant-design-vue 实现表格内部字段验证功能
Dec 16 Javascript
功能完善的小程序日历组件的实现
Mar 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
自学实现angularjs依赖注入
2016/12/20 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python conda操作方法
2019/09/11 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
pytorch 求网络模型参数实例
2019/12/30 Python
PyTorch实现AlexNet示例
2020/01/14 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
大学生职业生涯规划方案
2014/01/03 职场文书
赔偿协议书范本
2014/04/15 职场文书
个人融资协议书
2014/10/02 职场文书
中秋节寄语2015
2015/03/24 职场文书
会议室管理制度范本
2015/08/06 职场文书
初中班主任教育随笔
2015/08/15 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
关于python爬虫应用urllib库作用分析
2021/09/04 Python
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
Python Flask实现进度条
2022/05/11 Python
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL