Es ist in der Tat sehr bequem, die Methode neu zu verwenden .NET. Kann ich es auch in JavaScript tun?
In Javasciprt gibt es keine Funktion der Überladungsmethode. In der Vergangenheit hätten viele Menschen es möglicherweise getan, indem sie die Parameter weniger direkt übergeben und dann entschieden haben, wie sie mit ihnen umgehen sollen, basierend darauf, ob die Parameter "undefiniert" und undefiniert sind, um die Funktionen der Überlastung ähnlicher Methoden zu verwirklichen.
Zum Beispiel:
Die Codekopie lautet wie folgt:
var showMessage = Funktion (Name, Wert, ID) {
if (id! = "undefined") {
alert (Name+Wert+ID);
}
else wenn (value! = "undefined") {
alert (Name + Wert);
}
anders{
alarm (Name);
}
}
ShowMessage ("haha");
ShowMessage ("haha", "??");
ShowMessage ("haha", "??", 124124);
Heute habe ich einen Artikel über Ajaxian über das Schreiben der Überlastung der JavaScript -Methode gesehen, die durch eine andere Methode implementiert werden kann.
Schauen Sie sich diesen Code an:
Die Codekopie lautet wie folgt:
// addMethod - von John ressig (MIT lizenziert)
Funktion addMethod (Objekt, Name, fn) {
var old = Object [Name];
Objekt [Name] = function () {
if (fn.length == Argumente.length) {
Rückgabe fn.apply (this, Argumente);
}
else if (typeof old == 'function') {
old.Apply zurückgeben (this, Argumente);
}
}
};
var userInfo = function () {
addMethod (this, "find", function () {
alert ("kein Parameter");
});
addMethod (this, "find", function (name) {
alarm ("im Parameter übergeben wird a, genannt"+Name);
});
addMethod (this, "find", function (name, value) {
alert ("In zwei Parametern übergeben, wird der Name ="+name+"genannt und der andere nennt man value ="+value);
});
};
var userInfo = new userInfo ();
userInfo.find ();
userInfo.find ('Wer bin ich?');
userInfo.find ('xxx', '1512412514');
Schau, das macht es einfach ...