NodeJS Zappa在被调用的函数中使用@response,@ request

时间:2013-03-08 11:25:32

标签: node.js function scope zappa

我可以这样做:

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)

这是唯一的方法吗?

1 个答案:

答案 0 :(得分:0)

当你像foo()那样调用你的函数时你失去了范围,为了保持范围,你必须像这样调用foo

foo.apply(this)foo.call(this)