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