添加JavaScript重载函数的辅助方法2_javascript技巧_脚本之家

代码依然简单。所以照旧没什么好解释的。。 复制代码 代码如下: /** KOverLoad
一个创造重载函数的有倾囊相助方法。 补充上次的函数。 @Author ake 贰零零玖-07-03
@weblog */ var KOverLoad = function {
this.scope = scope || window;
//暗中认可加多方法到那些指标中。同期丰盛的办法的this指向该目的。 this.list =
{}; //寄放重载函数的位置。 return this; }; KOverLoad.prototype = {
//增多一个重载的秘技。 //@param arg 重载的诀窍。 add:function {
if(typeof arg == “function”卡塔尔 { var types = .join; this.list[arg.length

  • 金沙网址,types]添加JavaScript重载函数的辅助方法2_javascript技巧_脚本之家。 = arg;
    //以参数数量和类型做标记存款和储蓄重载方法。很领悟若是您的重载方法参数数量
    return this; } }, checkTypes: function { var type = []; //console.log;
    []艺术开创的数组,其typeof类型为object //要是必要看清项指标话
    还是用Object.prototype.toString.call == “[object Array]”来推断吧。
    for(var i=0, it; it = types[i++];卡塔尔(قطر‎ { type.push; } return type.join; },
    //增多完全数的重载函数以往,调用该办法来创建重载函数。 //@param fc
    重载函数的艺术名。 load:function { var self = this, args, len, types;
    this.scope[fc] = function(卡塔尔国 { //将钦点功能域的钦点方法 设为重载函数。
    args = Array.prototype.slice.call; //将参数转变为数组。 len =
    args.length; types = self.checkTypes; //console.log; if(self.list[len +
    types]卡塔尔国 { //根据参数数量调用符合的重载方法。 self.list[len +
    types].apply; //这里钦定了功能域和参数。 }else if{
    self.list[len].apply }else { throw new Error(“undefined overload
    type”卡塔尔; } } } }; 下边是言传身教: 复制代码
    代码如下: var s = {}; new KOverLoad //设置方法绑定的地点。命名空间?
    .add { console.log },[“string”]) .add { console.log
    },[“string”,”string”]) .add { console.log },[“string”, “number”,
    “string”]卡塔尔 .add { console.log }卡塔尔国 .load;
    //在这里处的参数正是要开创的重载函数的主意名称。 s.func;

发表评论

电子邮件地址不会被公开。 必填项已用*标注