在JS方法中,不能像C#方法能实现重载,但是我们可以通过js中的arguments来实现js方法的重载。
下面给出html实例:
<html>
<head>
<title>JS方法的重载</title>
<script>
function testFun1(arm1){
/// <summary>
/// JS重载测试被调用方法1
/// </summary>
/// <param name="arm1"></param>
alert(arm1);
}
function testFun2(arm1,arm2){
/// <summary>
/// JS重载测试被调用方法2
/// </summary>
/// <param name="arm1"></param>
/// <param name="arm2"></param>
alert(arm1+','+arm2);
}
function testFun3(arm1,arm2,arm3){
/// <summary>
/// JS重载测试被调用方法3
/// </summary>
/// <param name="arm1"></param>
/// <param name="arm2"></param>
/// <param name="arm3"></param>
alert(arm1+','+arm2+','+arm3);
}
function testFun4(arm1,arm2,arm3,arm4){
/// <summary>
/// JS重载测试被调用方法4
/// </summary>
/// <param name="arm1"></param>
/// <param name="arm2"></param>
/// <param name="arm3"></param>
/// <param name="arm4"></param>
alert(arm1+','+arm2+','+arm3+','+arm4);
}
function testFun(arm1,arm2,arm3,arm4){
/// <summary>
/// JS重载测试方法
/// </summary>
/// <param name="arm1"></param>
/// <param name="arm2"></param>
/// <param name="arm3"></param>
/// <param name="arm4"></param>
if(arguments.length==1){
alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]);
//这里既是执行重载的方法
testFun1(arm1);
}
else if(arguments.length==2){
alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]);
//这里既是执行重载的方法
testFun2(arm1,arm2);
}
else if(arguments.length==3){
alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]+'\n参数3:'+arguments[2]);
//这里既是执行重载的方法
testFun3(arm1,arm2,arm3);
}
else if(arguments.length==4){
alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]+'\n参数3:'+arguments[2]+'\n参数4:'+arguments[3]);
//这里既是执行重载的方法
testFun4(arm1,arm2,arm3,arm4);
}
//多个参数以此类推
}
//初始化执行的方法
window.οnlοad=function(){
testFun(1,2,3);
}
</script>
</head>
<body>
JS方法的重载
</body>
</html>