Coffeescript类失去了功能

时间:2011-09-26 19:15:43

标签: class function coffeescript

我有一个我无法调用函数的CoffeeScript。但是,如果我声明它的一个实例并将函数添加到它可以工作的实例。我错过了什么?

不会调用函数:

  class testClass 
    username: 'Fred'

    this.testFunction = ()->
      alert 'test'

  test = new testClass

  test.testFunction()   

功能有效:

  class testClass 
    username: 'Fred'

  test = new testClass

  test.testFunction = ()->
    alert 'test'

  test.testFunction()

2 个答案:

答案 0 :(得分:4)

class正文中,this指向类本身,而不是其原型。你想要的是

class testClass 
  username: 'Fred'

  testFunction: ->
    alert 'test'

另一方面,写this.testFunction =会创建testClass.testFunction

答案 1 :(得分:1)

尝试

 class testClass 
    username: 'Fred'
    testFunction: ()->
      alert 'test'

  test = new testClass

  test.testFunction()   

Coffeescript将课程作为第一级概念; this.testfunction =错了。您应该将其定义为类型函数的字段。