3

CoffeeScript では、サブクラスをインスタンス化するときにスーパークラス コンストラクターが呼び出されないようです。

これを回避する方法はありますか?

次に例を示します。

class A
    element = null

    constructor: ->
        element = document.createElement "div"

    hide: =>
        element.style.display = "none"

class B extends A
    constructor: ->
        @hide() #error!

Aのコンストラクターが最初に呼び出され、次に のコンストラクターが呼び出されることを期待しBます。Bその後、メソッドを呼び出す場合、 nullであると言う代わりに、のコンストラクターhideで作成された要素を非表示にする必要があります。Aelement

ありがとう!

4

1 に答える 1

5

サブクラスでスーパーを呼び出す必要があると思います

class A
    element = null

    constructor: ->
        element = document.createElement "div"

    hide: =>
        element.style.display = "none"

class B extends A
    constructor: ->
        super
        @hide() #error!
于 2013-02-12T20:15:33.730 に答える