Как я могу переопределить родительский метод в coffeescript, все еще имея возможность вызвать родителя

У меня есть два класса coffeescript, что-то вроде этого. В модели базового представления у меня есть метод, который я хочу переопределить в дочернем, который наследуется от базовой модели представления.

class exports.BaseViewModel
    constructor: () ->

    someBaseMethod: =>
        console.log "I'm doing the base stuff"

class ChildViewModel extends BaseViewModel
    constructor: () ->

    someBaseMethod: =>
        @doSomethingFirst()
        super @someBaseMethod()

Это не работает так, потому что строка super @someBaseMethod() вызывает себя, создавая бесконечный цикл.

Можно ли достичь того, чего я хочу здесь?

Ответы

Ответ 1

Да, вызовите super так же, как это была функция (она представляет ссылку на версию суперкласса метода, в котором вы находитесь):

class ChildViewModel extends BaseViewModel
  constructor: ->

  someBaseMethod: =>
    @doSomethingFirst()
    super()