Javascript中不存在函数重载,同名的函数将被最后一个覆盖。
function test(a,b){
this.x = 1;
}
function test(a){
this.x = 2;
}
function test(a){
this.x = 3;
}
var o = new test(1,2);
alert(o.x); // 3
运行上面的代码输出结果3,可见运行的是最后一个test,尽管我们创建对象时明确指定了使用两个参数的test构造函数去创建对象却没有成功,也没有报错。
因为javascript的变量是动态类型,无法准确区分是否重载,所以编码时尽量保持函数唯一因为生效的只有最后一个。