2016-07-25 14 views
0

ich einige Code hat folgende ...Was "das" in-Backbone listenTo()

var View = Backbone.View.extend({ 
... 
    initialize: function() { 
    this.listenTo(collection, 'add', this.addOne) 
    }, 
    addOne : function (item) { 
    this // 'this' here refers... what? 
}) 

ich das lesen guide
In diesem Handbuch "this" auf listenTo beziehen, bezieht sich "Zuhörer", aber getestet habe ich den Code oben, „dies“ die Ansicht selbst

In „Ereignissen und Ansichten“ Abschnitt sein kann,
„Wenn das Ereignis gebunden ist, mit listenTo(), dann innerhalb der Callback dies den Hörer bezieht.“

+0

Haben Sie versucht, 'console.log (this)' und sehen, was er sagt? –

+0

@Praveen Kumar console.log sagt "die Sicht" – fasdgoc

+0

LoL. Beeindruckend? Ernst? Also könnte es sich auf ['this '] beziehen (https://cdnjs.com/libraries/backbone.js/tutorials/what-is-a-view). –

Antwort

1

Below Schnipsel aus Dokumentation http://backbonejs.org/#Events-listenTo

listenToobject.listenTo(other, event, callback) 

ein Objekt per eMail auf ein bestimmtes Ereignis auf einem anderen Objekt zu hören. Der Vorteil der Verwendung dieses Formulars anstelle von other.on (event, callback, object) besteht darin, dass lifeTo dem Objekt ermöglicht, die Ereignisse zu verfolgen, und diese später auf einmal entfernt werden können. Der Callback wird immer mit Objekt als Kontext aufgerufen.

view.listenTo(model, 'change', view.render); 

Es ist sehr gut this erklärt bezieht sich auf das Objekt listenTo mit genannt wird. Zum Beispiel: object.listenTo(...) wird Objekt als Kontext haben, d. H. this wird das Objekt im Callback sein.

-Code-Schnipsel in der obigen Frage stellt im Wesentlichen listenTo auf View Objekt und somit this ist eigentlich ansehen

+0

danke für Ihre Erklärung! – fasdgoc

+0

@fasdgoc Akzeptieren Sie die Antwort wenn es zufriedenstellend ist :) –