Вы можете сохранить ссылку на исходную функцию, а затем переопределить ее функцией, которая вызывает исходную функцию и добавляет желаемую функциональность:
var originalFn = addToMe;
addToMe = function () {
originalFn(); // call the original function
// other stuff
};
Вы можете сделать это, потому что JavaScript функции являются первоклассными объектами.
Редактировать: Если ваша функция получает аргументы, вы должны использовать apply для передачи их в исходную функцию :
addToMe = function () {
originalFn.apply(this, arguments); // preserve the arguments
// other stuff
};
Вы также можете использовать выражение автозапуска функции с аргументом для хранения ссылки на исходную функцию, я думаю, что это немного чище:
addToMe = (function (originalFn) {
return function () {
originalFn.apply(originalFn, arguments); // call the original function
// other stuff
};
})(addToMe); // pass the reference of the original function