2012-06-30 13 views
5

私はバックボーンを学んでおり、on()関数にいくつかの問題がありました。しかし、実際はJavaScriptの基本的な質問です。jQuery on();関数

なぜ以下のコードの最初の行が機能し、2番目の行が機能しないのですか? 2行目を使用すると、レンダー関数は決してトリガーされません。角かっこに気をつけてください。

作品

this.collection.on('reset', this.render, this); 

this.collection.on('reset', this.render(), this); 
+1

[関数呼び出しの "()"の意味は?](http://stackoverflow.com/questions/3641330/whats-the-meaning-of-in-a-function-call) – pimvdb

答えて

9

this.render()を失敗this.renderは、関数へのハンドラであるのに対し、(そう、あなたのケースでは、データを渡している、この関数から返された)関数を実行します。

+0

this.render()を使用すると、関数をバインドするときに1回だけ実行されますか? – Voles

+2

はい、 'render()'関数が返すデータを渡しています。 – Zbigniew