js中模拟实现重载

java里面是存在重载的,那么js中呢?这个问题面试的时候会经常遇到。但是可以肯定的说,js中是不存在重载的,但是我们可以通过其他的方式来模拟重载,我们可以通过argument方法来实现。
argument是系统自带的一个方法,它是一个数组,并且用来存储函数传递的参数值。例如,我们定义一个function函数如下,并采用三种参数调用。
  • 1
  • 2
  • 3
    function add1(a,b){
     alert(arguments.length); //把传递的参数保存到了argument的数组里面
     return a+b;
     }
      alert(add1(1,2));
      alert(add1(1,2,3));
      alert(add1(1,2,3,4));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

alert(arguments.length)的结果分别是2,3,4。因此我们可以通过argument变量来模拟函数的重载。具体代码如下:

<html>
 <head>
  <title>HTML示例</title>
  <style type="text/css">

  </style>
 </head>
 <body>
 <script type="text/javascript">
function add1(a,b){
     alert(arguments.length); //把传递的参数保存到了argument的数组里面
     switch(arguments.length)
     {
     case 2:
        return arguments[0]+arguments[1];break;
     case 3:
        return arguments[0]+arguments[1]+arguments[2];break;
     case 4:
        return arguments[0]+arguments[1]+arguments[2]+arguments[3];break;
    default:
        return 0;
     } 
 }
      alert(add1(1,2));
      alert(add1(1,2,3));
      alert(add1(1,2,3,4));
       </script>
 </body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_37569048/article/details/80597146
今日推荐