在javascript中实现同名函数

在javascript中实现同名函数

文章分类:Web前端 关键字: 在javascript中实现同名函数 arguments
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.javaeye.com/blog/336287 》 谢谢支持!★★★

在javascript中有个系统变量arguments,在函数内使用,可以得到当前调用者调用函数所使用的参数。看看下面的例子:

Js代码 复制代码
  1. function foo(){   
  2.     alert(arguments.length);//3   
  3.     var params="";   
  4.     for(var i=0;i<arguments.length;i++){   
  5.         params=params+arguments[i];   
  6.     }   
  7.     alert(params);//abc   
  8. }   
  9.   
  10. foo("a","b","c");  


通过上面的例子,可以很清楚地了解了arguments的功能了。

我们知道,在javascript中如果定义了2个或2个以上的相同名字的函数,则只有最后定义的函数才有效。就如下面的例子:
Js代码 复制代码
  1.   
  2. function show(s){   
  3.     alert(s);   
  4. }   
  5.   
  6. function show(s1,s2){   
  7.     alert(s1+s2);   
  8. }   
  9.   
  10. show("a");//aundefined  


例子中的show("a")调用的是show(s1,s3)函数,所以最后的结果显示了aundefined。

在java中经常会使用同名方法,在实际的开发过程中,同名函数(方法)的调用非常的方便,现在我们就可以利用arguments同样在javascript中实现同名函数。看下面的例子:

Js代码 复制代码
  1.   
  2. function showMessage(){   
  3.     var argLength = arguments.length;   
  4.     if(argLength==0||argLength>2) alert("参数错误!必须为1个或者2个参数");   
  5.     switch(argLength){   
  6.     case 1:   
  7.         showMessage1(arguments[0]);   
  8.         break;   
  9.     case 2:   
  10.         showMessage2(arguments[0],arguments[1]);   
  11.         break;   
  12.     }   
  13. }   
  14.   
  15. function showMessage1(s){   
  16.     alert(s);   
  17. }   
  18.   
  19. function showMessage2(s1,s2){   
  20.     alert(s1+s2);   
  21. }  


在上面的例子中,调用的时候就可以传入1个或者2个参数都可以,showMessage("a")或者showMessage("a","b")都是有效的。
posted @ 2010-06-01 11:47  '.Elvis.'  阅读(948)  评论(0)    收藏  举报