Si potrebbe memorizzare un riferimento alla funzione originaria, e poi ignorare che, con una funzione che richiama quella originale, e aggiunge la funzionalità che desiderano:
var originalFn = addToMe;
addToMe = function() {
originalFn(); // call the original function
// other stuff
};
si può fare questo perché JavaScript functions sono first-class oggetti.
Edit: Se la funzione riceve argomenti, è necessario utilizzare apply passarli al funzione originale:
addToMe = function() {
originalFn.apply(this, arguments); // preserve the arguments
// other stuff
};
Si potrebbe anche usare un'espressione funzione di auto-esecuzione con un argomento per memorizzare il riferimento della funzione originale, penso che sia un po 'più pulito:
addToMe = (function (originalFn) {
return function() {
originalFn.apply(originalFn, arguments); // call the original function
// other stuff
};
})(addToMe); // pass the reference of the original function
sì, questa è probabilmente la soluzione più semplice! – mauris
perfetto :) troppo facile. –
grazie :) una soluzione così elegante. – silkcom