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

时间:2013-02-05 12:51:34

标签: 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 个答案:

答案 0 :(得分:31)

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

class ChildViewModel extends BaseViewModel
  constructor: ->

  someBaseMethod: =>
    @doSomethingFirst()
    super()