我写了一些代码......
var View = Backbone.View.extend({
...
initialize: function () {
this.listenTo(collection, 'add', this.addOne)
},
addOne : function (item) {
this // 'this' here refers... what?
})
我读了guide
在本指南中,listenTo上的“this”是指“listener”,但我测试了上面的代码,“this”可能是视图本身
在“事件和观点”部分,
“如果使用listenTo()绑定事件,那么在回调中,这将引用侦听器。”
答案 0 :(得分:1)
以下代码段来自文档 http://backbonejs.org/#Events-listenTo
listenToobject.listenTo(other, event, callback)
告诉对象在另一个对象上侦听特定事件。使用此表单而不是other.on(事件,回调,对象)的优点是listenTo允许对象跟踪事件,并且可以稍后将它们全部删除。将始终使用object作为上下文调用回调。
view.listenTo(model, 'change', view.render);
很好地解释了this
指的是调用了对象listenTo
。
例如:object.listenTo(...)
将对象作为上下文,即this
将成为回调中的对象。
上述问题中的代码片段本质上是在视图对象上调用listenTo,因此this
实际上是视图