.NETでメソッドリロードを使用することは確かに非常に便利です。 javascriptでもできますか?
JavaSciprtでは、オーバーロード方法の機能はありません。過去には、多くの人がパラメーターを直接渡すことでそれを行ったかもしれません。その後、パラメーターが「未定義」で未定義であるかどうかに基づいてそれらに対処する方法を決定し、同様の方法を過負荷にする機能を実現するためです。
例えば:
コードコピーは次のとおりです。
var showmessage = function(name、value、id){
if(id!= "undefined"){
アラート(name+value+id);
}
else if(value!= "未定義"){
アラート(名前 +値);
}
それ以外{
アラート(名前);
}
}
showmessage( "haha");
showmessage( "haha"、 "??");
showmessage( "haha"、 "??"、124124);
今日、私はAjaxianに関するJavaScriptメソッドの過負荷の執筆に関する記事を見ました。これは別の方法で実装できます。
このコードを見てください:
コードコピーは次のとおりです。
// AddMethod -John Resig(MITライセンス)
関数addmethod(object、name、fn){
var old = object [name];
object [name] = function(){
if(fn.length == arguments.length){
return fn.apply(これ、引数);
}
else if(typeof old == 'function'){
Old.Apply(これ、引数)を返します。
}
}
};
var userinfo = function(){
addmethod(this、 "find"、function(){
アラート( "パラメーターなし");
});
addmethod(this、 "find"、function(name){
alert( "パラメーターで渡されたのはa、"+name);
});
addmethod(this、 "find"、function(name、value){
alert( "2つのパラメーターで渡されます。1つはname ="+name+"と呼ばれ、もう1つはvalue ="+valueと呼ばれます);
});
};
var userInfo = new userInfo();
userinfo.find();
userInfo.find( '私は誰ですか?');
userinfo.find( 'xxx'、 '1512412514');
ほら、これはそれをシンプルにします...