0

我可以做这个:

require('zappajs') ->
    @get '/':-> console.log(@response)

但是当我尝试这个时

require('zappajs') ->
    @get '/': -> foo()

    foo = ->
      console.log(@response)

@response 未定义。所以很明显“这个”现在超出了范围。我尝试使用=>函数定义,而不是通过->它来传递“this”……但这没有区别。我可以使用@helper 达到预期的结果

require('zappajs') ->
    @get '/':-> @foo()

    @helper foo: ->
        console.log(@response)

这是唯一的方法吗?

4

1 回答 1

0

当你像这样调用你的函数时,你正在失去作用域foo(),为了保持作用域,你必须这样调用foo

foo.apply(this)或者foo.call(this)

于 2013-10-01T12:29:45.300 回答