JavaScript中如何通过arguments对象实现对象的重载
更新时间:2014年05月12日 10:38:23 作者:
js 中不存在函数的重载,但却可以通过arguments对象实现对象的重载,下面有个不错的示例,大家可以参考下
复制代码 代码如下:
<!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>
相关文章
通过location.replace禁止浏览器后退防止重复提交
如果用户重复提交事件,然后又后退,这样可能会对某些数据产生灾难性的问题。所以今天就向大家介绍一种通过location.replace禁止浏览器后退按钮的方法2014-09-09
JavaScript中的appendChild()方法示例详解
这篇文章主要介绍了JavaScript中的appendChild()方法,appendChild()方法是向节点添加最后一个子节点,也可以使用此方法从一个元素向另一个元素移动元素,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下2023-10-10
JavaScript鼠标拖动事件监听使用方法以及实例效果演示
最近工作中遇到了鼠标拖动事件监听的相关需求,所以下面这篇文章主要给大家介绍了关于JavaScript鼠标拖动事件监听使用方法以及实例效果演示的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2023-05-05
流量统计器如何鉴别C#:WebBrowser中伪造referer
这篇文章主要介绍了流量统计器如何鉴别C#:WebBrowser中伪造referer,需要的朋友可以参考下2015-01-01


最新评论