调用Javascript函数时,幕后会发生什么

调用Javascript函数时,幕后会发生什么,javascript,function,Javascript,Function,有人能解释一下在下面的场景中会发生什么吗:(这是一个面试问题) 有人问我javascript是如何调用这些方法的,以及在这个场景中幕后会发生什么情况如果您按照这个顺序运行,test(a)将被test(a,b)替换 当callTest()运行时,测试(a)将发出警报(a,未定义),然后测试(a,b)将发出警报(a,b)Agreed-JS没有方法重载的概念。你说的“幕后”是什么意思?听起来像是一个相当激烈的面试问题。我希望他们会问警报对话框的内容是什么…alert只接受一个参数,所以第二个参数将被忽

有人能解释一下在下面的场景中会发生什么吗:(这是一个面试问题)


有人问我javascript是如何调用这些方法的,以及在这个场景中幕后会发生什么情况

如果您按照这个顺序运行,test(a)将被test(a,b)替换


当callTest()运行时,测试(a)将发出警报(a,未定义),然后测试(a,b)将发出警报(a,b)

Agreed-JS没有方法重载的概念。你说的“幕后”是什么意思?听起来像是一个相当激烈的面试问题。我希望他们会问警报对话框的内容是什么…
alert
只接受一个参数,所以第二个参数将被忽略。谢谢,这已经解释得很好了。
function test(a){
    alert(a);
}

function test(a,b){
    alert(a,b);
}

function callTest(){
    test(a);
    test(a,b);
}
function test(a){     // f1. never called.
    alert(a);
}

function test(a,b){   // f2. overwrite f1 function because name of two functions is same.
    alert(a,b);
}

function callTest(){
    test(1);     // called f2 with (1, undefined)
    test(1,2);   // called f2 with (1, 2)
}
callTest();