Coffeescript - 引用onclick中的类方法

时间:2013-02-13 09:45:18

标签: coffeescript

我只是想知道如何才能让它发挥作用?

尝试在onclick上引用方法

class C

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

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

new C()

2 个答案:

答案 0 :(得分:4)

这是因为@f编译为this.fthis是构造函数本身。

要访问类方法f,您必须编写C.f

class C

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

    constructor: () ->
        console.log C.f
        document.onclick = C.f

答案 1 :(得分: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()