2011-09-26 76 views
0

我有一个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() 

回答

4

class本体内,this指向类本身,而不是它的原型。你想要的是

class testClass 
    username: 'Fred' 

    testFunction: -> 
    alert 'test' 

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

1

尝试

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

    test = new testClass 

    test.testFunction() 

CoffeeScript中具有类作为第一层次的概念; this.testfunction =是错误的。您应该将其定义为类型函数的字段。