JavaScript中的方法重載實例
.NET里面的方法重載用著的確很方便,哪Javascript里面能不能也哪樣做呢?
Javasciprt里面本生是沒有方法重載的功能,以前很多人的做法可能是直接少傳參數(shù)過去,然后在根據(jù)參數(shù)是否為 “undefined” 未定義來決定怎么處理,從而實現(xiàn)類似方法重載的功能。
例如:
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àn)的。
看一下這個代碼:
// 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(”沒有參數(shù)”);
});
addMethod(this,”find”,function(name){
alert(”傳入的參數(shù)是一個,叫 ”+name);
});
addMethod(this,”find”,function(name,value){
alert(”傳入了兩個參數(shù),一個叫 name=”+name+” 一個叫 value=”+value);
});
};
var userinfo = new UserInfo();
userinfo.find();
userinfo.find('我是誰?');
userinfo.find('某某某','1512412514');
看,這樣一來就簡單了……
相關(guān)文章
AngularJs+Bootstrap實現(xiàn)漂亮的計算器
這篇文章主要為大家詳細(xì)介紹了angularJs+Bootstrap實現(xiàn)漂亮的計算器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
JS限定手機(jī)版中圖片大小隨分辨率自動調(diào)整的方法
下面小編就為大家?guī)硪黄狫S限定手機(jī)版中圖片大小隨分辨率自動調(diào)整的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
JavaScript使用SpreadJS創(chuàng)建Excel查看器
在現(xiàn)代的Web應(yīng)用開發(fā)中,Excel文件的處理和展示是一項常見的需求,小編今天將為大家展示如何借助SpreadJS來創(chuàng)建一個Excel查看器,感興趣的小伙伴可以了解下2023-12-12

