0

私がすることができます:

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

しかし、私がこれを試すとき

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

    foo = ->
      console.log(@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 に答える