Как автоматически вызвать метод родительского класса при вызове метода дочернего объекта в JavaScript

Привет всем!

У меня есть интересная задача. Есть главный объект, который создает экземпляр другого класса:

app = new Application();

Application.prototype.initialize = function() {
  // ...
  this.config = new Configuration(parameters);
  // ...
}

В классе Configuration есть метод changeSettings, который можно вызвать так:

app.config.changeSettings(parameters);

Этот метод changeSettings используется в разных местах Application. У меня есть метод в Application:

Application.prototype.refresh = function() {
  // выполняет обновление без параметров
}

Мне нужно, чтобы метод refresh автоматически вызывался каждый раз, когда срабатывает changeSettings. Но я не хочу добавлять этот вызов в каждое место, где используется changeSettings. Есть ли способ это реализовать элегантно?

Буду благодарен за любые идеи!

Попробуй применить паттерн Наблюдатель или передать обратный вызов в конструктор Configuration. Например, this.config = new Configuration(parameters, this.refresh.bind(this)), а затем вызови этот обратный вызов в changeSettings. Также можно использовать пользовательские события. Сколько данных обрабатывает changeSettings?

Можешь перехватить метод через Proxy или переопределить его в конструкторе Configuration. Сохрани оригинальный метод в переменную, потом переопредели changeSettings чтобы он вызывал оригинал и твой refresh. const original = this.changeSettings; this.changeSettings = (...args) => { original.apply(this, args); callback(); }. Чисто получается.