tag - Añadir a una función javascript
wordpress title tag (1)
Tengo una función que no puedo modificar:
function addToMe() { doStuff(); }
¿Puedo añadir a esta función? Obviamente, esta sintaxis es terriblemente incorrecta pero es la idea general ...
function addToMe() { addToMe() + doOtherStuff(); }
Puede almacenar una referencia a la función original, y luego anularla, con una función que recupera la original y agrega la funcionalidad que desea:
var originalFn = addToMe;
addToMe = function () {
originalFn(); // call the original function
// other stuff
};
Puedes hacer esto porque las functions JavaScript son objetos de first-class .
Editar: Si su función recibe argumentos, debe usar apply para pasarlos a la función original :
addToMe = function () {
originalFn.apply(this, arguments); // preserve the arguments
// other stuff
};
También puede utilizar una expresión de función de ejecución automática con un argumento para almacenar la referencia de la función original, creo que está 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