En JavaScript, comment pouvez-vous créer une nouvelle fonction avec le même nom qu'une fonction existante, tout en conservant la fonction d'origine afin qu'elle puisse être appelée à partir du nouveau?Chaîne de méthode Alias en JavaScript?
3
A
Répondre
8
Vous pouvez transmettre la fonction d'origine dans une fonction anonyme qui renvoie une fonction de remplacement ayant accès à la fonction d'origine.
E.g.
parseInt = (function parseInt(original) {
return function (x) {
console.log("original would've returned " + original(x));
// just random 'new' functionality
return (x | 0) * 2;
};
}(parseInt));
Exemple de sortie:
>> parseInt(10);
<< original would've returned 10
<< 20
3
Vous souhaitez implémenter la fonction emballage, consultez les articles suivants:
1
Vous pouvez simplement affecter l'ancienne fonction à une variable avec un nom différent:
var old_parseInt = parseInt;
function parseInt(s) {
return old_parseInt(s) + 1;
}