意外调用Javascript中的函数

Rei*_*gel -1 javascript javascript-events

我不是很擅长JavaScript,所以我在这里问.

下面是一个示例代码.

<html>
<head>
<script>
function test(one)
{
alert('surprise! first function with one parameter');
}

function test(one,two)
{
alert('expected: second function with two parameters');
}
</script>
</head>
<body onload="javascript:test('first')">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

问题:

我预计那'surprise! first function with one parameter'会被警告onload,因为我只用一个参数调用该函数.令我惊讶的是,它在第​​二个功能中发出警报.

  • 有人可以向我解释这个原因吗?
  • 我怎么能绕过它呢?

fij*_*ter 8

Javascript不支持方法重载; 它只是覆盖函数,因此每次都会调用最后一个函数.

解决这个问题的方法就是创建1个函数并在其中放置一些条件来检查变量是否已设置.