Domanda

In JavaScript, come hai potuto creare una nuova funzione con lo stesso nome di una funzione esistente, pur preservando la funzione originale in modo che possa essere chiamato dall'interno della nuova?

È stato utile?

Soluzione

È possibile passare la funzione originale in una funzione anonima che restituisce una funzione di sostituzione che ha accesso alla funzione originale.

per es.

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

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

uscita Esempio:

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

Altri suggerimenti

Si desidera implementare funzione di avvolgimento , controllare i seguenti articoli:

Si potrebbe semplicemente assegnare la vecchia funzione a una variabile con un nome diverso:

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top