Har*_*rsh -4 javascript function
我有以下这些功能.
function a(obj)
{
console.log("function 1 "+obj);
}
function a(x)
{
console.log("function 2 "+"3");
}
a(1);
Run Code Online (Sandbox Code Playgroud)
为什么总是第二个功能在运行?为什么不是第一个?
您不能在同一范围内使用相同名称的两个函数.第二个将取代第一个.这就是为什么第一个永远不会被执行的原因.
如果您希望重载该函数,可以通过在函数内立即检查参数的类型来实现.例如,请考虑以下事项:
function a ( x ) {
var output;
switch ( typeof x ) {
case "string" :
output = "foo";
break;
case "object" :
output = "bar";
break;
default:
output = typeof x;
}
console.log( output );
}
Run Code Online (Sandbox Code Playgroud)