15

このような2つの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()がそれ自体を呼び出して無限ループを作成しているためです。

ここで私が望むものを達成することは可能ですか?

4

1 に答える 1

31

はい、super関数のように呼び出します (現在のメソッドのスーパークラス バージョンへの参照を表します)。

class ChildViewModel extends BaseViewModel
  constructor: ->

  someBaseMethod: =>
    @doSomethingFirst()
    super()
于 2013-02-05T13:47:29.573 に答える