在Coffeescript中使用类时,我偶然发现了一个主要问题,让我举例说明

class Bet
  constructor: () ->

  placeBet: ->
    $('#chips > div').bind 'click', ->
      amount = $(this).attr 'id'
      pile = $(this)
      switch amount
        when "ten" then this.bet pile, amount #This line causes a problem

  bet: (pile, amount) ->
    alert 'betting!'

上面对 this.bet 的调用生成以下错误:

未捕获的TypeError:对象#没有方法'bet'

因此,目前我的类的实例方法尚未被调用,
我如何正确地调用类的打赌方法而又不与jQuery选择器的this冲突(我想这是现​​在正在发生的事情)?

提前非常感谢您!

最佳答案

试试这个:

class Bet
  constructor: () ->

  placeBet: ->
    that = this
    $('#chips > div').bind 'click', ->
      amount = $(this).attr 'id'
      pile = $(this)
      switch amount
        when "ten" then that.bet pile, amount #This line causes a problem

  bet: (pile, amount) ->
    alert 'betting!'

10-06 00:07