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函数
上一篇下一篇

猜你喜欢

热点阅读