最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

添加JavaScript重載函數(shù)的輔助方法2

 更新時(shí)間:2010年07月04日 19:39:54   作者:  
話說,人就是要被關(guān)注才有動力啊于是修改了下上次寫的《添加JavaScript重載函數(shù)的輔助方法》在添加方法的時(shí)候增加了一個(gè)參數(shù) 用于限制參數(shù)的類型。
代碼依然簡單。所以依然沒什么好解釋的。。
復(fù)制代碼 代碼如下:

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

下面是示例:
復(fù)制代碼 代碼如下:

var s = {};
new KOverLoad(s) //設(shè)置方法綁定的位置。命名空間?
.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"); //在這里的參數(shù)就是要創(chuàng)建的重載函數(shù)的方法名稱。
s.func("a","b");

相關(guān)文章

  • 微信小程序 select 下拉框組件功能

    微信小程序 select 下拉框組件功能

    這篇文章主要介紹了微信小程序 select 下拉框組件功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 微信小程序?qū)崿F(xiàn)圖片壓縮

    微信小程序?qū)崿F(xiàn)圖片壓縮

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片壓縮,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • JavaScript函數(shù)式編程(Functional Programming)高階函數(shù)(Higher order functions)用法分析

    JavaScript函數(shù)式編程(Functional Programming)高階函數(shù)(Higher order fun

    這篇文章主要介紹了JavaScript函數(shù)式編程(Functional Programming)高階函數(shù)(Higher order functions),結(jié)合實(shí)例形式分析了javascript函數(shù)式編程高級函數(shù)的概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • JS實(shí)現(xiàn)仿新浪微博發(fā)布內(nèi)容為空時(shí)提示功能代碼

    JS實(shí)現(xiàn)仿新浪微博發(fā)布內(nèi)容為空時(shí)提示功能代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)仿新浪微博發(fā)布內(nèi)容為空時(shí)提示功能,
    2015-08-08
  • JS字符串長度判斷,超出進(jìn)行自動截取的實(shí)例(支持中文)

    JS字符串長度判斷,超出進(jìn)行自動截取的實(shí)例(支持中文)

    下面小編就為大家?guī)硪黄狫S字符串長度判斷,超出進(jìn)行自動截取的實(shí)例(支持中文)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • JavaScript腳本庫編寫的方法

    JavaScript腳本庫編寫的方法

    本文給大家分享javascript腳本庫編寫的方法,涉及到j(luò)avascript腳本相關(guān)知識,對javascript腳本相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • JS前端文件讀取FileReader操作方法總結(jié)

    JS前端文件讀取FileReader操作方法總結(jié)

    FileReader?包含了一套完整的事件模型,用于捕獲讀取文件時(shí)的狀態(tài),下面這篇文章主要給大家介紹了關(guān)于JS前端文件讀取FileReader操作方法的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Bootstrap 3多級下拉菜單實(shí)例

    Bootstrap 3多級下拉菜單實(shí)例

    這篇文章主要為大家詳細(xì)介紹了Bootstrap 3多級下拉菜單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JavaScript注冊時(shí)密碼強(qiáng)度校驗(yàn)代碼

    JavaScript注冊時(shí)密碼強(qiáng)度校驗(yàn)代碼

    這篇文章主要為大家詳細(xì)介紹了JavaScript注冊時(shí)密碼強(qiáng)度校驗(yàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JS target與currentTarget區(qū)別說明

    JS target與currentTarget區(qū)別說明

    target在事件流的目標(biāo)階段;currentTarget在事件流的捕獲,目標(biāo)及冒泡階段。只有當(dāng)事件流處在目標(biāo)階段的時(shí)候,兩個(gè)的指向才是一樣的,而當(dāng)處于捕獲和冒泡階段的時(shí)候,target指向被單擊的對象而currentTarget指向當(dāng)前事件活動的對象(一般為父級)。
    2011-08-08

最新評論

仁寿县| 丁青县| 习水县| 宝山区| 通州区| 佛山市| 临澧县| 沂南县| 青神县| 浠水县| 西青区| 富阳市| 乌什县| 孝义市| 高雄市| 霍林郭勒市| 新巴尔虎右旗| 慈利县| 弋阳县| 雷州市| 富源县| 耿马| 武强县| 和静县| 崇左市| 环江| 五原县| 手机| 绥阳县| 上思县| 仪陇县| 邹平县| 上杭县| 叶城县| 章丘市| 衡水市| 衡东县| 浦东新区| 苗栗县| 奉节县| 曲阳县|