天下一家·MJ

博客园 首页 新随笔 联系 订阅 管理

当我们写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");

运行示例代码即可体会快感!

posted on 2014-07-17 08:38  天下一家·MJ  阅读(1019)  评论(0编辑  收藏  举报
友情链接Tkin的技术博客