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"