2012-03-25 153 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()​​​​​​​​​​​​​​​​​​ 

注:的间距是多余的,但我喜欢它的样子。祝你好运。