2012-06-30 7 views
5

Ich lerne Backbone und hatte einige Probleme mit der on() - Funktion. Aber eigentlich ist es eine sehr grundlegende JavaScript-Frage.jQuery on(); Funktion

Warum funktioniert die erste Codezeile unten und die zweite nicht? Mit der zweiten Zeile wird die Render-Funktion nie ausgelöst. Beachten Sie die Klammern.

Works

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

Fails

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

mögliches Duplikat von [Was bedeutet "()" in einem Funktionsaufruf?] (Http://stackoverflow.com/questions/3641330/whats-the-meaning-of-in-a-function-call) – pimvdb

Antwort

9

this.render() Funktion führt (so in Ihrem Fall Sie Gabe von Daten von dieser Funktion zurück), während this.render ist Handler-Funktion.

+0

also this.render() es wird nur einmal ausgeführt, wenn ich die Funktion binde? – Voles

+2

Ja, Sie übergeben Daten, die von der Funktion 'render()' zurückgegeben werden. – Zbigniew