Heim  >  Artikel  >  Web-Frontend  >  Beispiele für Methodenüberladung in JavaScript_Javascript-Tipps

Beispiele für Methodenüberladung in JavaScript_Javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 16:09:011064Durchsuche

Methodenüberladung in .NET ist in der Tat sehr praktisch. Ist es möglich, dasselbe in Javascript zu tun?

Javasciprt verfügt nicht über die Funktion der Methodenüberladung. In der Vergangenheit haben viele Leute möglicherweise einfach weniger Parameter übergeben und dann basierend darauf, ob die Parameter „undefiniert“ waren, entschieden, wie damit umgegangen werden soll, wodurch eine ähnliche Methodenüberladung erreicht wurde. Funktion.

Zum Beispiel:

Code kopieren Der Code lautet wie folgt:

var showMessage = function(name,value,id){
If(id != ”undefiniert”){
alarm(name value id);
}
​ else if(value != ”undefiniert”){
Alert(Name Wert);
}
sonst{
alarm(name);
}
}

showMessage("Haha");
showMessage("Haha","??");
showMessage("Haha","??",124124);

Heute habe ich einen Artikel über das Überladen von Javascript-Methoden auf Ajaxian gesehen. Es kann durch eine andere Methode implementiert werden.

Sehen Sie sich diesen Code an:

Code kopieren Der Code lautet wie folgt:

// addMethod – Von John Resig (MIT-lizenziert)
Funktion 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' ) {
Geben Sie old.apply( this, arguments );
zurück }
}
};

var UserInfo = function(){
​ addMethod(this“,find“,function(){
alarm("Keine Parameter");
});

addMethod(this“,find“,function(name){
alarm("Der übergebene Parameter ist einer und heißt „name);
});

addMethod(this“,find“,function(name,value){
warning("Es werden zwei Parameter übergeben, einer heißt name="name" und der andere heißt value="value);
});
};

var userinfo = new UserInfo();
userinfo.find();
userinfo.find('Wer bin ich?');
userinfo.find('someone','1512412514');


Sehen Sie, so ist es ganz einfach...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn