当我们写js的重载函数的时候,我们需要判断不同的输入情况。
而,一般我们是根据参数的个数来判断的,但是,常常情况并非如此:
function abc(a,b,c)
a:string
b:number
c:boolean
或者
a:string
b:string
c:number
这两种情况都是参数个数为3,但是参数类型却完全不同。如何的方便的构建一个重载函数呢?
用我的类即可:
类代码(很简短):
var Param = { varify: function (oParam, sParamType) { var arrParam = sParamType.split(","); if (arrParam.length == oParam.length) { for (var nIndex = 0; nIndex < oParam.length; nIndex++) { if (typeof oParam[nIndex] != String(arrParam[nIndex]).toLowerCase()) { return false; } } return true; } else { return false; } } };
应用案例代码:
function modify(s) { switch (true) { case Param.varify(arguments, "string,string,number"): alert(arguments[0] + " " + arguments[1] + "=" + arguments[2].toString()); break; case Param.varify(arguments, "string,string"): alert("Fist Name:"+arguments[1] + "\nLast Name:" + arguments[0]); break; default: alert("nothing"); } } modify("Michael", "Jackson"); modify("Michael", "Jackson",5); modify("Michael", "Jackson","King Of Pop");
运行示例代码即可体会快感!
一个简单的参数校验类
时间: 2024-10-23 14:53:03