一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

添加JavaScript重載函數的輔助方法2

代碼依然簡單。所以依然沒什么好解釋的。。
復制代碼 代碼如下:
/** KOverLoad
一個創建重載函數的輔助方法。
補充上次的函數。
@Author ake 2010-07-03
@weblog http://www.cnblogs.com/akecn
*/
var KOverLoad = function(scope) {
this.scope = scope || window; //默認添加方法到這個對象中。同時添加的方法的this指向該對象。
this.list = {}; //存放重載函數的地方。
return this;
};
KOverLoad.prototype = {
//添加一個重載的方法。
//@param arg<Function> 重載的方法。
add:function(arg, types) {
if(typeof arg == "function") {
var types = (types || []).join(",");
this.list[arg.length + types] = arg; //以參數數量和類型做標識存儲重載方法。很顯然如果你的重載方法參數數量
return this;
}
},
checkTypes: function(types) {
var type = [];
//console.log(typeof type); []方式創建的數組,其typeof類型為object
//如果需要判斷類型的話 還是用Object.prototype.toString.call(type) == "[object Array]"來判斷吧。
for(var i=0, it; it = types[i++];) {
type.push(typeof it);
}
return type.join(",");
},
//添加完所有的重載函數以后,調用該方法來創建重載函數。
//@param fc<String> 重載函數的方法名。
load:function(fc) {
var self = this, args, len, types;
this.scope[fc] = function() { //將指定作用域的指定方法 設為重載函數。
args = Array.prototype.slice.call(arguments); //將參數轉換為數組。
len = args.length;
types = self.checkTypes(args);
//console.log(self.list);
if(self.list[len + types]) { //根據參數數量調用符合的重載方法。
self.list[len + types].apply(self.scope, args); //這里指定了作用域和參數。
}else if(self.list[len]){
self.list[len].apply(self.scope, args)
}else {
throw new Error("undefined overload type");
}
}
}
};

下面是示例:
復制代碼 代碼如下:
var s = {};
new KOverLoad(s) //設置方法綁定的位置。命名空間?
.add(function(a) {
console.log("one",a,this)
},["string"])
.add(function(a,b) {
console.log("two",a,b,this)
},["string","string"])
.add(function(a,b,c) {
console.log("three",a,b,c,this)
},["string", "number", "string"])
.add(function(a,b,c,d) {
console.log("four",a,b,c,d,this)
})
.load("func"); //在這里的參數就是要創建的重載函數的方法名稱。
s.func("a","b");

JavaScript技術添加JavaScript重載函數的輔助方法2,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 激情国产 | 日本久久久久久久中文字幕 | 91视频高清 | 丁香婷婷激情综合 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片毛片 | 中文字幕日韩精品中文区 | 亚洲一区二区三区四区在线 | 美女被男人扒开下面无遮无挡 | 亚洲另类图片小说 | 一区二区三区网站在线免费线观看 | 国产精品一区二区三区四区 | 亚洲黄色小视频 | www激情| 亚洲十欧美十日韩十国产 | 91最新视频| 亚洲欧美日韩在线2020 | 欧洲精品一区二区三区在线观看 | 久久精品视频播放 | 久久er99热精品一区二区 | 视频二区在线观看 | 精品视频在线观看一区二区 | 日韩中文字幕精品免费一区 | 国产精品视频一区二区三区小说 | 久久夜色精品国产亚洲 | 四虎免费看 | 在线免费观看福利 | 欧美成人免费一区在线播放 | 国产大片黄在线看免费 | 国产短视频在线 | 国产91精品久久久久久 | 黄色在线视频网站 | 久青草国产手机视频免费观看 | 久久综合丝袜长腿丝袜 | 在线视频精品视频 | 婷婷久久精品 | 国产婷婷一区二区在线观看 | 国产aaa免费视频国产 | 91最新| 色老板最新地址 | 免费91最新地址永久入口 | 免费一区二区三区四区五区 |