2013-02-24 69 views
1

我想傳遞一個值到的CoffeeScript類的構造函數沒有成功:傳遞一個值到的CoffeeScript類的構造函數

class A 

    constructor:() -> 

    @b = new B('FOO') 


class B 

    constructor: (@value) -> 

    printValue:() => 
    console.log @value 


當我調用B的實例的printValue,然後在控制檯中記錄'undefined'。爲什麼'FOO'沒有被記錄?

UPDATE

我應該提到A類實例在第三個C類創建的,就像這樣:

class C 

    constructor:() -> 

    @a = new A() 


這三類都在不同的文件中,並加入一起按此順序在C頂上的C ontop。

+1

適合我嗎? http://jsfiddle.net/XNaAe/ – Niko 2013-02-24 13:35:35

+0

你可以添加你調用'printValue()'的行嗎? – Niko 2013-02-24 13:41:51

+0

打印值是從點擊處理程序調用 $('body')。'點擊','#add_bts', - > – 2013-02-24 13:43:57

回答

2

當我這樣做時,它工作得很好:

class B 
    constructor: (@value) -> 
    printValue:() -> alert @value 

b = new B "foo" 
b.printValue() 

我猜測你有一個空白的縮進問題發生。由於CoffeeScript對空白敏感,因此您的製表符/間距需要在同一個塊內保持一致。

轉到http://coffeescript.org/並選擇「Try Coffeescript」。將其粘貼並按下「運行」。

或者,考慮創建一個顯示此問題的JSFiddle,因爲我沒有看到問題。

相關問題