Добавьте к функции JavaScript

Один интересный путь состоит в том, чтобы поддержать стек, и только объединиться, если список на стеке имеет то же число элементов, и иначе продвиньте список, пока Вы не заканчиваетесь элементы во входящем списке, и затем объединяете стек.

21
задан Peter Craig 2 November 2009 в 02:48
поделиться

1 ответ

Вы можете сохранить ссылку на исходную функцию, а затем переопределить ее с помощью функции, которая вызывает исходную функцию и добавляет желаемую функциональность:

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
42
ответ дан 29 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: