2012-06-30 11 views
5

Sto imparando Backbone e ho avuto alcuni problemi con la funzione on(). Ma in realtà è una domanda JavaScript molto semplice.jQuery on(); funzione

Perché è la prima riga di codice che funziona e il secondo no? Utilizzando la seconda riga, la funzione di rendering non viene mai attivata. Occupati delle parentesi.

Opere

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

Fails

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

possibile duplicato di [Qual è il significato di "()" in una chiamata di funzione?] (Http://stackoverflow.com/questions/3641330/whats-the-meaning-of-in-a-function-call) – pimvdb

risposta

9

this.render() esegue la funzione (dati in modo nel tuo caso si sta passando restituiti da questa funzione), mentre this.render è gestore per la funzione.

+0

quindi usando this.render() viene eseguito una sola volta, quando lego la funzione? – Voles

+2

Sì, stai trasmettendo i dati restituiti dalla funzione 'render()'. – Zbigniew