2012-03-25 69 views
-1

我無法訪問和更新我認爲的是coffeescript中的一個實例屬性。我正在嘗試更新@cart_total。我第一次更新總數,它工作正常。但是,它只是第一次。看來@cart_total只更新一次。Coffeescript更新實例屬性時出現的問題

下面的代碼:

class Cart 

    constructor:()-> 
    @cart_total = 0.00 


    updateTotal: (amt)-> 
    @cart_total = @cart_total + amt 


    this.updateTotal(@lineItem.total) 

當我打電話updateTotal,似乎只工作的第一次。我非常感謝任何幫助 - 謝謝!

編輯:

我從類內調用updateTotal。我添加了上面的代碼。

+0

您不必在javascript中寫入0.00,因爲只有一個數字類型,0就足夠了。在javascript中沒有「實例變量」,因爲沒有類。你的功能應該工作,但我們不知道你是怎麼稱呼它的。 – mpm 2012-03-25 18:46:40

+0

你是怎麼調用'updateTotal'的?也許http://jsfiddle.net/上的演示會有所幫助,您可以通過在「面板」下選擇CoffeeScript來使用CoffeeScript。 – 2012-03-25 19:03:09

+0

@camus - 我喜歡0的指針。我更新了代碼,以顯示我如何調用updateTotal – Chris 2012-03-25 19:15:21

回答

0

由於您正在定義一個類,因此任何函數調用都應在方法中。除非你試圖創建類方法或變量,但我不相信這就是你要在這裏完成的。

這可能幫助:

class Cart 
    constructor:  -> @cart_total = 0 
    updateTotal: (amt) -> @cart_total += amt 
    getTotal:   -> @cart_total 
    addTen:   -> @updateTotal 10 

cart = new Cart 

cart.updateTotal 9.50 
console.log cart.getTotal() 

cart.updateTotal 19.50 
console.log cart.getTotal() 

cart.addTen() 
console.log cart.getTotal()​​​​​​​​​​​​​​​​​​ 

注:的間距是多餘的,但我喜歡它的樣子。祝你好運。