我可以这样做:
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)
这是唯一的方法吗?
答案 0 :(得分:0)
当你像foo()
那样调用你的函数时你失去了范围,为了保持范围,你必须像这样调用foo
:
foo.apply(this)
或foo.call(this)