Se puede almacenar una referencia a la función original, y luego anularlo, con una función que devuelve la llamada a la original, y se suma la funcionalidad que desean:
var originalFn = addToMe;
addToMe = function() {
originalFn(); // call the original function
// other stuff
};
usted puede hacer esto porque JavaScript functions son first-class objetos.
Editar: Si su función recibe argumentos, se debe utilizar apply para pasarlos a la función original:
addToMe = function() {
originalFn.apply(this, arguments); // preserve the arguments
// other stuff
};
También es posible usar una expresión de la función de auto-ejecución con un argumento para almacenar la referencia de la función original, creo que es un poco más limpia:
addToMe = (function (originalFn) {
return function() {
originalFn.apply(originalFn, arguments); // call the original function
// other stuff
};
})(addToMe); // pass the reference of the original function
¡esa es probablemente la solución más simple! – mauris
perfecto :) muy fácil. –
gracias :) una solución tan elegante. – silkcom