2013-07-12 80 views
0

我有一個像這樣的CoffeeScript的實例方法

class Foo 
    a: 1 
    b: 2 
    main: -> 
    if a == 1 
    log(1) 

    log: (num) -> 
    console.log(num) 
f = new Foo 
f.main() 

它不斷示數出來說,日誌沒有被定義定義的CoffeeScipt類。我試圖讓它@log:也沒有工作。我試圖讓->的主要=>並沒有工作。我如何從類內部調用實例方法?

回答

8

使用@調用實例方法和字段時,如果不定義時:

class Foo 
    a: 1 
    b: 2 

    main: -> 
    if @a == 1 
    @log(1) 

    log: (num) -> 
    console.log(num) 

f = new Foo() 
f.main() 

@定義方法,這樣

@log: (num) -> 
    console.log(num) 

讓他們靜。
在CoffeeScript上開發時查看編譯後的JS。

+0

這加上使用'new'關鍵字,你應該設置。 'F =新的Foo()' –

+0

和重寫的'如果== 1'到'如果富::因爲'一個== 1' A'也是在原型。 – ssarabando

+0

抱歉,我省略了'new'關鍵字,它在原始源代碼中。這似乎奏效了。謝謝。 – rdodev