1

簡単な問題があります。私は Foo クラスを持っており、コンストラクターでタイマーを開始しています。タイマー コールバックで、アラート クラス プロパティが必要ですが、「未定義」になります。なぜですか?

class Foo
  simpleProperty: "fooBar"

  constructor: ->
    setInterval @runBar, 1 * 1000
    return

  runBar: ->
    alert @simpleProperty #undefined, why?
    return

foo = new Foo()

ご協力ありがとうございました!

4

1 に答える 1

4

this(または@CoffeeScriptの場合)のスコープのため。

太い矢印を使用する必要があります。

runBar: =>
  alert @simpleProperty #fooBar

ここで動作することを確認してください。

于 2012-11-15T12:24:00.820 に答える