0

どうすればこれを機能させることができるのでしょうか。

オンクリックでメソッドを参照しようとしています

class C

  @f: () ->
    alert 'works'
    null

  constructor: () ->
    console.log @f # why is this undefined?
    document.onclick = @f

new C()
4

2 に答える 2

4

これは、コンストラクター関数自体@fにコンパイルされthis.f、コンストラクター関数であるためです。this

クラスメソッドにアクセスするfには、次のように記述する必要がありますC.f

class C

    @f: () ->
        alert 'works'
        null

    constructor: () ->
        console.log C.f
        document.onclick = C.f
于 2013-02-13T09:57:33.803 に答える
3

クラスメソッドではなく、インスタンスメソッドをバインドしたいと思います

class C
    #this defines a class method
    @f: () ->
        alert 'works'
        null

    #this is an instance method
    f: () ->
        alert 'works'
        null

    constructor: () ->
        console.log @f # why is this undefined?
        document.onclick = @f

 new C()
于 2013-02-13T10:00:16.903 に答える