有人可以解释下面情况会发生什么:(这是面试问题)
function test(a){
alert(a);
}
function test(a,b){
alert(a,b);
}
function callTest(){
test(a);
test(a,b);
}
我被问到javascript如何调用这些方法,以及在此场景中幕后发生的事情
答案 0 :(得分:3)
如果按顺序运行,则test(a)将替换为test(a,b)
当运行callTest()时,test(a)将发出警报(a,未定义),然后test(a,b)将发出警报(a,b)
答案 1 :(得分:1)
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();