javascript利用arguments实现方法重载机制

时间:2025-02-15 08:03:31

javascript支持方法的重写,但是没有方法重载机制,那么可以模仿重载机制吗?答案是肯定的。

(在这里补充一下重写和重载的区别,笔者曾几何时一度混淆。重写是子类覆盖父类的方法,方法名/参数列表/函数返回类型 必须相同;重载是同一个类中多个方法实现,方法名必须相同,参数列表必须不同,返回类型可以不同 )

利用全局变量arguments可以实现,arguments是类数组,通过判断传入参数的长度可以访问到参数列表的值。

举例说明:

      function doAdd(){
        if(==1){
          alert(arguments[0]+10);
        }else if(==2){
          alert(arguments[0]+arguments[1]);
        }
      }


      doAdd(10); //outputs "20"
      doAdd(30,20);//outputs "50"