JavaScript中的方法重載實(shí)例
.NET里面的方法重載用著的確很方便,哪Javascript里面能不能也哪樣做呢?
Javasciprt里面本生是沒(méi)有方法重載的功能,以前很多人的做法可能是直接少傳參數(shù)過(guò)去,然后在根據(jù)參數(shù)是否為 “undefined” 未定義來(lái)決定怎么處理,從而實(shí)現(xiàn)類(lèi)似方法重載的功能。
例如:
var showMessage = function(name,value,id){
if(id != ”undefined”){
alert(name+value+id);
}
else if(value != ”undefined”){
alert(name + value);
}
else{
alert(name);
}
}
showMessage(”哈哈”);
showMessage(”哈哈”,”??”);
showMessage(”哈哈”,”??”,124124);
今天在Ajaxian上面看到了一篇關(guān)于Javascript方法重載的寫(xiě)法,它是能過(guò)另外一個(gè)方法來(lái)實(shí)現(xiàn)的。
看一下這個(gè)代碼:
// addMethod - By John Resig (MIT Licensed)
function addMethod(object, name, fn){
var old = object[ name ];
object[ name ] = function(){
if ( fn.length == arguments.length ){
return fn.apply( this, arguments );
}
else if ( typeof old == 'function' ){
return old.apply( this, arguments );
}
}
};
var UserInfo = function(){
addMethod(this,”find”,function(){
alert(”沒(méi)有參數(shù)”);
});
addMethod(this,”find”,function(name){
alert(”傳入的參數(shù)是一個(gè),叫 ”+name);
});
addMethod(this,”find”,function(name,value){
alert(”傳入了兩個(gè)參數(shù),一個(gè)叫 name=”+name+” 一個(gè)叫 value=”+value);
});
};
var userinfo = new UserInfo();
userinfo.find();
userinfo.find('我是誰(shuí)?');
userinfo.find('某某某','1512412514');
看,這樣一來(lái)就簡(jiǎn)單了……
- JS重載實(shí)現(xiàn)方法分析
- JS模擬實(shí)現(xiàn)方法重載示例
- javascript中通過(guò)arguments參數(shù)偽裝方法重載
- js面向?qū)ο缶幊讨绾螌?shí)現(xiàn)方法重載
- js中方法重載如何實(shí)現(xiàn)?以及函數(shù)的參數(shù)問(wèn)題
- 有關(guān)于JS構(gòu)造函數(shù)的重載和工廠方法
- 添加JavaScript重載函數(shù)的輔助方法2
- 為JavaScript添加重載函數(shù)的輔助方法
- JavaScript 的方法重載效果
- 妙用緩存調(diào)用鏈實(shí)現(xiàn)JS方法的重載
相關(guān)文章
javascript學(xué)習(xí)筆記之函數(shù)定義
本文主要給大家介紹了javascript的一些函數(shù)定義方面的基礎(chǔ)知識(shí),包括函數(shù)聲明式、函數(shù)表達(dá)式、Function 構(gòu)造函數(shù)等,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06js實(shí)現(xiàn)轉(zhuǎn)動(dòng)骰子模型
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)轉(zhuǎn)動(dòng)骰子模型,自動(dòng)隨機(jī)生成骰子數(shù)的模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10微信小程序--獲取用戶(hù)地理位置名稱(chēng)(無(wú)須用戶(hù)授權(quán))的方法
這篇文章主要介紹了微信小程序-獲取用戶(hù)地理位置名稱(chēng)(無(wú)須用戶(hù)授權(quán))的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04javaScript字符串工具類(lèi)StringUtils詳解
這篇文章主要為大家詳細(xì)介紹了javaScript字符串工具類(lèi)StringUtils,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Three.js+React實(shí)現(xiàn)帶火焰效果的艾爾登法環(huán)
《艾爾登法環(huán)》是最近比較火的一款游戲,觀察可以發(fā)現(xiàn)它的?Logo?是由幾個(gè)圓弧和線(xiàn)段構(gòu)成。本文使用?React?+?Three.js?技術(shù)棧,實(shí)現(xiàn)具有火焰效果艾爾登法環(huán)?Logo,感興趣的可以了解一下2022-03-035秒后跳轉(zhuǎn)到另一個(gè)頁(yè)面的js代碼
跳轉(zhuǎn)到另一個(gè)頁(yè)面的方法有很多,在本文將為大家詳細(xì)介紹下js中如何實(shí)現(xiàn)5秒后跳轉(zhuǎn)到另一個(gè)頁(yè)面,感興趣的朋友可不要錯(cuò)過(guò)2013-10-10JS實(shí)現(xiàn)帶導(dǎo)航城市列表以及輸入搜索功能
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)帶導(dǎo)航城市列表以及輸入搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Vue之vue-tree-color組件實(shí)現(xiàn)組織架構(gòu)圖案例詳解
這篇文章主要介紹了Vue之vue-tree-color組件實(shí)現(xiàn)組織架構(gòu)圖案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09bootstrap treeview 擴(kuò)展addNode方法動(dòng)態(tài)添加子節(jié)點(diǎn)的方法
bootstrap-treeview 是一款基于Jquery+bootstrap的樹(shù)控件,這篇文章主要介紹了bootstrap treeview 擴(kuò)展addNode方法動(dòng)態(tài)添加子節(jié)點(diǎn)的方法,需要的朋友可以參考下2017-11-11