js中有两个相同的方法参数个数不相同加载时会先加载哪个
2020-11-01 本文已影响0人
小沙盒工作室
js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作
1.在js中函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最有一个有效,其他的函数声明都是无效的。比如说声明了两个函数fn(),第一次声明时没有形参,第二次声明时形参有两个,则在调用fn()时不管有没有传入参数,都是调用后声明的那个函数。假如说调用时只传入了1个参数,例如fn(1),则1会赋给函数的第一个形参,而第二个形参不会赋值,如果有用到,就会当undefined处理,可能会报错。如果调用时传入了3个参数,例如fn(1,2,3),则1会赋给第一个形参,2会赋给第二个形参,3是用不上的,但是不会报错。
<script type="application/javascript">
function a(a,b){
alert("2222222222222");
}
function a(a){
alert("11111111111");
}
</script>
js加载都是从前往后的,但是一样的函数名,前面的函数会被后面的覆盖掉,所以,调用函数a的时候,永远都是去执行第二个函数
例子:
script language="javascript">
//第一个a函数
function a(a){
alert("2222222222222");
}
//第二个a函数
function a(a,b){
if(b== "points"){
alert("13455781111111---"+a+"----"+b);
}else {
alert("11111111111---"+a);
}
}
</script>
<input type="button" value="test" οnclick="a(1)"> //执行第二个a函数
<input type="button" value="test2" οnclick="a(1,'points')"> //执行第二个a函数