在Javascript中没有函数重载,而arguments对象弥补了这点不足。
js函数的参数是一个数组,在参数个数不固定的情况下,只需要给方法传递不同元素个数的数组即可。即使声明函数时没有形式参数,在调用时也可以传递参数,这些参数存放在arguments对象中。通过数组的下标可以访问传入方法的参数,而参数的个数可以通过arguments.length来获取。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('#btnTest').bind('click',function(){
sayhello('hello','world');
})
});
function sayhello(){
console.log(arguments[0] + ',' + arguments[1]);
}
</script>
</head>
<body>
<input id='btnTest' type='button' value='click me!' />
</body>
</html>