Question

En JavaScript, comment pourriez-vous créer une nouvelle fonction avec le même nom qu'une fonction existante, tout en conservant la fonction d'origine de sorte qu'il pourrait être appelé à l'intérieur du nouveau?

Était-ce utile?

La solution

Vous pouvez passer la fonction d'origine en une fonction anonyme qui retourne une fonction de remplacement qui a accès à la fonction d'origine.

par exemple.

parseInt = (function parseInt(original) {
    return function (x) {
        console.log("original would've returned " + original(x));

        // just random 'new' functionality
        return (x | 0) * 2;
    };
}(parseInt));

sortie Exemple:

>> parseInt(10);
<< original would've returned 10
<< 20

Autres conseils

Vous voulez mettre en œuvre emballage fonction , consultez les articles suivants:

Vous pourriez simplement attribuer l'ancienne fonction à une variable avec un nom différent:

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top