1

私がこのJavaScriptを持っている場合:

function I_did_something(){
  this.test.assertExists('#selector', 'exists');
}

casper.then(I_did_something);

問題は、casperがメソッドcallを呼び出すために使用してthenいることです。つまり、次のようなことはできません。

@I_did_something = ->
  @assertExists('#selector', 'exists')

casper.then @I_did_something

thisグローバルオブジェクトを参照していないためです。

ウィンドウオブジェクトを使用せずに、これをコーヒースクリプトに変換する方法を誰かが提案できますか?

4

1 に答える 1

0

太い矢印 ( =>)を使用して、関数を現在の にバインドできますthis

@I_did_something = =>
  @assertExists('#selector', 'exists')

これには、次のような効果があります。

that = @
@I_did_something = ->
  that.assertExists('#selector', 'exists')

それがあなたが求めているものだと思います。

于 2012-08-08T17:43:24.850 に答える