基于传递参数覆盖Javascript函数

Cho*_*hoy 2 javascript parameters overriding function

是否可以根据您传入的参数数量覆盖函数?例如:

function abc(name) {
    document.write ('My name is' + name);
}

function abc(name,friend) {
    document.write ('My name is' + name + 'and my best friend\'s name is' + friend);
}
Run Code Online (Sandbox Code Playgroud)

所以在HTML如果我只是叫ABC(乔治),将使用该函数的第一个版本,但如果我叫ABC(乔治,约翰),它会使用第二个版本.

可能还有其他方法来完成我使用的示例,但我只是想知道这个概念在javascript中是否合理.

Que*_*tin 10

JavaScript不支持函数重载.

但是你可以:

if (typeof friend === "undefined") {
    // do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)