Cenário 1
se só existir esta função,
function a() { alert("a()"); }
ela pode ser chamada com qualquer número de parâmetros que o resultado é sempre:
a();
a('iuy', 455, 54, 54);
uma caixa de dialogo com a string a(), Não dando qualquer erro de invocação.
Cenário 2
Agora se tivermos, só a seguinte função,
function a(id) { alert("a(" + id + ")"); }
Quando for chamado o código,
a();
a(‘iuy’, 455, 54, 54);
mostra as seguintes caixas de dialogo:
- a(undefined)
- a(iuy)
Não dando qualquer erro de invocação.
Cenário 3
Duas funções com o mesmo nome, mas com parâmetros diferentes
function a(id)
{
alert("a(" + id + ")");
}
function a()
{
alert("a()");
}
Só a última é que fica disponível para invocação.
Conclusão: qualquer função pode ser chamada com qualquer número de parâmetros que não será lançado nenhum erro. Os parâmetros da função não preenchidos no momento da invocação terão o valor “undefined”.