Javascript是不能使用多載的!!

Javascript是不能使用多載的!!

之前在寫javascript因為用了相同的function名稱,
但是傳入的參數數量不同,
而執行時沒有什麼錯誤,而且還能正常執行,
所以一直以為Javascript能使用多載的寫法,
結果今天認真測試了一下發現,實際上是不能的,
雖然相同的function名稱,不同的參數數量是不會出現錯誤訊息,
但是,實際上Javascript只會執行最後定義的那個function,測試範例如下

function test(p1)
{
alert('函數2');
}
</script>
</head>
<body onload="javascript:test(1,2)">
</body>
</html>

所以如果要使用類似多載的功能的話(傳入不同數量的參數),
可以使用下面的作法

function test()
{
for (var i = 0 ;i<arguments.length ;i++ )
{
alert(arguments[i]);
}
}
</script>
</head>
<body>
<button onclick="javascript:test(1)">test(1)</button>
<button onclick="javascript:test(1,2)">test(1,2)</button>
<button onclick="javascript:test(1,2,3)">test(1,2,3)</button>
</body>
</html>