2012-02-08 17 views
2

は、私は私がこれを持っているような状況(ラファエルライブラリを使用して)を持っている:イベントハンドラ関数に引数を渡しても、 'this'参照を使用する方法はありますか?

rect.click(doSomething); 

そしてdoSomething()以内に、私は、バウンディングボックスのサイズを取得することができます:

var boxSize = this.getBBox(); 

問題はどのような場合には、あるのI doSomethingに引数を渡したいですか?私がそうするなら、何らかの理由でthis参照が壊れます。どのように私は引数を渡しても、thisを使用できますか?

答えて

4

あなたは別の関数でリスナーをラップし、指定したパラメータで関数を呼び出すために.call()を使用することができます。

var foo = 123, bar = 'blabla'; 
rect.click(function(event) { 
    return doSomething.call(this, event, foo, bar); 
}); 
+0

非常に便利な、でも、 'は.call()'について感謝を知りませんでした! – CaptSaltyJack

関連する問題