CoffeeScripts类 - 在回调中访问属性

时间:2012-11-15 12:20:16

标签: javascript coffeescript

我有一个简单的问题。我有Foo类,在构造函数中我启动计时器。在计时器回调中我想要警报类属性,但我会得到“未定义”,为什么?

class Foo
  simpleProperty: "fooBar"

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

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

foo = new Foo()

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

由于this的范围(或者在CoffeeScript的情况下为@)。

你应该使用一个胖箭头:

runBar: =>
  alert @simpleProperty #fooBar

看到它正常工作here

答案 1 :(得分:-1)

根据我的理解,如果你调用函数foo.runBar()this指针将与对象foo绑定。

因此,在函数中,this.simpleProperty将被视为foo.simpleProperty

显然,它会返回undefined