Il est en effet très pratique d'utiliser le rechargement de la méthode dans .NET. Puis-je également le faire en JavaScript?
Dans Javasciprt, il n'y a pas de fonction de la méthode de surcharge. Dans le passé, de nombreuses personnes auraient pu le faire en transmettant directement les paramètres moins et en décidant comment les traiter en fonction de la question de savoir si les paramètres ne sont "pas définis" et non définis, afin de réaliser les fonctions de surchargement des méthodes similaires.
Par exemple:
La copie de code est la suivante:
var showMessage = fonction (nom, valeur, id) {
if (id! = "Undefined") {
alert (nom + valeur + id);
}
else if (valeur! = "Undefined") {
alert (nom + valeur);
}
autre{
alerte (nom);
}
}
ShowMessage ("haha");
ShowMessage ("haha", "??");
ShowMessage ("haha", "??", 124124);
Aujourd'hui, j'ai vu un article sur Ajaxian sur l'écriture de la surcharge de la méthode JavaScript, qui peut être implémentée via une autre méthode.
Jetez un œil à ce code:
La copie de code est la suivante:
// AddMethod - par John Resig (MIT Licensed)
fonction addMethod (objet, nom, fn) {
var old = objet [name];
objet [name] = fonction () {
if (fn.length == arguments.length) {
retour fn.apply (ceci, arguments);
}
else if (typeof old == 'function') {
Retour Old.Apply (ceci, arguments);
}
}
};
var userInfo = function () {
addMethod (this, "find", function () {
alert ("aucun paramètre");
});
addMethod (this, "find", function (name) {
alert ("passé dans le paramètre est un, appelé" + nom);
});
addMethod (this, "find", function (nom, valeur) {
alert ("passé en deux paramètres, l'un est appelé name =" + name + "et l'autre est appelé valeur =" + valeur);
});
};
var userInfo = new UserInfo ();
userInfo.Find ();
userInfo.find («Qui suis-je?»);
userInfo.Find ('xxx', '1512412514');
Regardez, cela rend les choses simples ...