Javascript 一样可以实现重载的功能,虽然也只是模拟而已。
    要说重载就不得不说arguments对象,arguments是一个类似数组但不是数组的对象,说它类似(仅仅是类似)数组是因为其具有数组一样的访问性质及方式,可以由 arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表(用funcName.length取),而且不能显式创建 arguments 对象。arguments 对象只有函数开始时才可用
    任何一个function定义之后都有一个arguments对象生成,事实上,在声明一个函数时,你不需要在随后的括号里声明其传递的参数,调用函数时可以随意传递任意类型和任意个数的参数(真是灵活啊!)这些参数都可以在函数内部通过arguments对象来访问。多说无益,写一个重载的例子看看大家就清楚了。
    function test()
    {
      if(arguments.length==0)
      {
         alert("这是没有参数的情况");
      }
      else if(arguments.length==1)
      {
        if(typeof(arguments[0])=="number")
        {
           alert("这是有一个参数,并且参数为number型的情况");
        }
        else if(typeof(arguments[0])=="string")
        {
           alert("这是有一个参数,并且参数为string型的情况");
         }
      }
    }
test();
test(2);
test("aa");

   好,重载实现了,传入不同的参数调用了不同的方法体。