2010-06-10 3 views
3

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?

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 
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; 
}