2016-07-25 30 views
0

我寫了下面的一些代碼...什麼在骨幹listenTo()是指「本」,以

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

我讀了guide
在本指南中,「本」上listenTo是指「聽衆」,但我測試上面的代碼,「這個」可以是視圖本身

在「事件和視圖」部分,
「如果該事件被使用listenTo()結合,則回調中這是指收聽」。

+0

你嘗試'的console.log(本)',看看它說什麼? –

+0

@Praveen Kumar console.log說「視圖」 – fasdgoc

+0

LoL。哇?真的嗎?那麼它可能指的是['this'](https://cdnjs.com/libraries/backbone.js/tutorials/what-is-a-view)。 –

回答

1

以下片段是從文檔 http://backbonejs.org/#Events-listenTo

listenToobject.listenTo(other, event, callback) 

告訴一個對象來收聽特定事件的其他對象。使用這種形式而不是other.on(event,callback,object)的好處是listenTo允許對象跟蹤事件,並且可以在以後一次刪除它們。回調將始終以對象作爲上下文來調用。

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

這很好解釋thislistenTo被調用的對象。 例如:object.listenTo(...)將具有作爲上下文的對象,即this將是回調中的對象。在上述問題

的代碼片段基本上調用視圖對象listenTo,因此this實際上是視圖

+0

感謝您的解釋! – fasdgoc

+0

@fasdgoc接受答案,如果它令人滿意:) –