JavaScript 没有函数重载&Arguments对象
2015-07-18 12:13
686 查看
对于学过Java的人来说,函数重载并不是一个陌生的概念,但是javaScript中有函数重载么...接下来我们就进行测试
[html]
view plaincopyprint?
<script type="text/javascript">
//JavaScript不存在函数重载现象
var add=function(a,b){
return a+b;
}
var add=function(a,b,c){
return a+b+c;
}
[html]
view plaincopyprint?
<span style="white-space:pre"> </span>alert(1,2);
alert(add(1,2,3));
</script>
alert(1,2):
alert(1,2,3):
结果对比发现:第一个运行的结果是NaN,第二个运行的结果正常。
JavaScript中不存在函数重载的现象,当同时出现两个相同的函数名驶,第二个会覆盖第一个.因此alet(1,2)会找第二个函数,但是它是实参中的第三个参数为空,因此结果报了NaN.
那么我们怎么样模仿Java中的函数重载现象呢?这里就要介绍Arguments对象...
<script type="text/javascript">
//JavaScript不存在函数重载现象
var add=function(){
if(arguments.length==2){
return arguments[0]+arguments[1];
}else if(arguments.length==3){
return arguments[0]+arguments[1]+arguments[2];
}
}
alert(add(1,2,4));
</script>
根据arguments是一个数组,可以根据他的长度length来判断函数的参数的个数...
[html]
view plaincopyprint?
<script type="text/javascript">
//JavaScript不存在函数重载现象
var add=function(a,b){
return a+b;
}
var add=function(a,b,c){
return a+b+c;
}
<script type="text/javascript"> //JavaScript不存在函数重载现象 var add=function(a,b){ return a+b; } var add=function(a,b,c){ return a+b+c; }
[html]
view plaincopyprint?
<span style="white-space:pre"> </span>alert(1,2);
alert(add(1,2,3));
</script>
<span style="white-space:pre"> </span>alert(1,2); alert(add(1,2,3)); </script>这个案例也仿照java中的语法,来模拟函数重载..我们运行一下结果
alert(1,2):
alert(1,2,3):
结果对比发现:第一个运行的结果是NaN,第二个运行的结果正常。
JavaScript中不存在函数重载的现象,当同时出现两个相同的函数名驶,第二个会覆盖第一个.因此alet(1,2)会找第二个函数,但是它是实参中的第三个参数为空,因此结果报了NaN.
那么我们怎么样模仿Java中的函数重载现象呢?这里就要介绍Arguments对象...
<script type="text/javascript">
//JavaScript不存在函数重载现象
var add=function(){
if(arguments.length==2){
return arguments[0]+arguments[1];
}else if(arguments.length==3){
return arguments[0]+arguments[1]+arguments[2];
}
}
alert(add(1,2,4));
</script>
<script type="text/javascript"> //JavaScript不存在函数重载现象 var add=function(){ if(arguments.length==2){ return arguments[0]+arguments[1]; }else if(arguments.length==3){ return arguments[0]+arguments[1]+arguments[2]; } } alert(add(1,2,4)); </script>functon必须是空的function(){}
根据arguments是一个数组,可以根据他的长度length来判断函数的参数的个数...
相关文章推荐
- 【原创】贡献一个JS的弹出框代码...
- js获取颜色,颜色3中类型的转换
- JSP
- 关于js的特性慢慢思考
- 如何在网页打开时弹出通知,JS代码
- JS正则表达式验证账号、手机号、电…
- 引用JS表单验证大全 以后方便…
- return new ModelAndView("redirect:/login.jsp");
- 在HTML网页上打印需要的内容,JS代…
- JavaScript引擎的工作原理
- JavaScript和Java的区别
- 如何系统地学习JavaScript
- js this和$(this)区别
- JavaScript实现模仿桌面窗口的方法
- JSP学习笔记(三):关于服务器和SVN的区别
- js实现固定显示区域内自动缩放图片的方法
- 深入理JavaScript闭包
- jsp日期格式化
- JavaScript的特殊函数
- javascript顺序加载图片的方法