如何在仍然能够调用父进程的情况下覆盖coffeescript中的父方法

Nei*_*eil 15 coffeescript

我有两个类似的咖啡师课程.在基本视图模型中,我有一个方法,我想在从基本视图模型继承的子窗口中重写.

class exports.BaseViewModel
    constructor: () ->

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

class ChildViewModel extends BaseViewModel
    constructor: () ->

    someBaseMethod: =>
        @doSomethingFirst()
        super @someBaseMethod()
Run Code Online (Sandbox Code Playgroud)

这不能正常工作,因为该行super @someBaseMethod()调用自身创建一个无限循环.

有可能实现我想要的吗?

epi*_*ian 31

是的,调用super就像它是一个函数(它表示对您所在方法的超类版本的引用):

class ChildViewModel extends BaseViewModel
  constructor: ->

  someBaseMethod: =>
    @doSomethingFirst()
    super()
Run Code Online (Sandbox Code Playgroud)