有人能解释一下在下面的场景中发生了什么吗?(这是一个面试问题)
function test(a){
alert(a);
}
function test(a,b){
alert(a,b);
}
function callTest(){
test(a);
test(a,b);
}我被问到javascript如何调用这些方法,以及在这个场景中幕后发生了什么。
发布于 2014-11-10 03:39:37
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();发布于 2014-11-10 03:34:22
如果您按此顺序运行它,则测试(A)将被测试(a,b)所取代。
运行callTest()时,test(a)将发出警报(a,未定义),然后test(a,b)将发出警报(a,b)
https://stackoverflow.com/questions/26836280
复制相似问题