今天看了下javascript高级编程这本书,书中提到可以使用传如不同的参数数量和类型实现java的方法重载,但我试了好像不行,都会被后面的function给覆盖。function a(num1,num2){ alert("djang");}function a(num0){ alert("diang2");} a("aaa"); //结果是djang2 a("aaa","bbb"); //结果是djang2这样也不行、、、、、function a(){ if(arguments.length == 2){ alert("djang"); } } function a(){ if(arguments.length == 1){ alert("diang2"); } } a("aaa","bb"); a("aaa");
1 回答

森栏
TA贡献1810条经验 获得超5个赞
你可能看的不仔细,不应该是实现重载,而是模拟重载。高程中多次强调JavaScript中函数没有重载。
但是我们可以在函数内部,通过判断arguments.length ,以及判断传入的参数类型,执行不同的代码来模拟重载
function a(){
if(arguments.length===1){
//执行某些代码
}else if(arguments.length===2){
//执行另一些代码
}
}
添加回答
举报
0/150
提交
取消