Могу ли я добавить к этой функции? Очевидно, что этот синтаксис ужасно ошибочен, но это общая идея...
function addToMe() { addToMe() + doOtherStuff(); }
Ответ 1
Вы можете сохранить ссылку на исходную функцию, а затем переопределить ее с помощью функции, которая возвращает исходную, и добавляет желаемые функции:
var originalFn = addToMe;
addToMe = function () {
originalFn(); // call the original function
// other stuff
};
Изменить: Если ваша функция получает аргументы, вы должны использовать 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