Как заменить ошибочный метод в классе, когда метод вызывает super.method()?Javascript

Форум по Javascript
Ответить
Anonymous
 Как заменить ошибочный метод в классе, когда метод вызывает super.method()?

Сообщение Anonymous »

Я расширяю фреймворк, в методе класса которого есть ошибка.

Код: Выделить всё

// Parent Class
class BaseClass{
method() {
// do something
}
}

// Child class
class SubClass extends BaseClass{
method() {
// do something buggy
super.method();
}
}
Я отправил сообщение о проблеме, чтобы получить ее решение, но мне нужен временный обходной путь. Я рассмотрел либо
  • monkeypatching метода в существующем классе, но метод должен вызывать super.method(), что не разрешено в функции Monkeypatch, поскольку у него нет слота [[HomeObject]].

    Код: Выделить всё

    SubClass.prototype.method = function() {
    // cannot call super.method()
    };
    
  • расширяем класс и переопределяем метод, но тогда я хочу вызывать не глючный super.method(), а "super.super.method()"

    Код: Выделить всё

    class SubSubClass extends SubClass{
    method() {
    // do something not buggy
    super.super.method();
    }
    }
    
Возможен ли любой из подходов? Есть ли другой способ обойти этот ошибочный метод?

Подробнее здесь: https://stackoverflow.com/questions/798 ... per-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»