什么是重载?
重载是指方法名相同 而参数不同(QwQ) Java c#什么的不都这么定义的么?
如果在Js中这样写会出现什么结果呢?
<script type="text/javascript">
function add1(a,b){
return a+b;
}
function add1(a,b,c){
return a+b+c;
}
function add1(a,b,c,d){
return a+b+c+d;
}
alert(add1(1,2));
alert(add1(1,2,3));
alert(add1(1,2,3,4));
</script>
T A T ! 结果如下
alert(add1(1,2));//NaN
alert(add1(1,2,3));//NaN
alert(add1(1,2,3,4));//10
这是为啥呢···
在Js中 会有一个就近原则 (QwQ怎么说……)
第一个alert(add1(1,2))这个调用的function add1(a,b,c,d){}这个方法(QwQ 调用最近的方法)因为参数个数不够 所以没有运算 返回的NaN 其他的同样
So Js中没有重载 但是 可以模拟重载
****传递的参数保存在arguments数组中
QwQ 记住arguments这个数组
下面进行模拟Js的重载
<script type="text/javascript>
function add1(){
if(arguments.length == 2){
return arguments[0]+arguments[1];
}else if(arguments.length == 3){
return arguments[0]+arguments[1]+arguments[2];
} else if(arguments.length == 4){
return arguments[0]+arguments[1]+arguments[2]+arguments[3];
}else{
return 0;
}
}
</script>
Js中没有重载
利用arguments数组的长度判断执行哪个方法 模拟重载效果