我在下面写了一些代码...
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()绑定的,则在回调中这将指向侦听器。”
最佳答案
以下摘录来自文档
http://backbonejs.org/#Events-listenTo
listenToobject.listenTo(other, event, callback)
告诉一个对象侦听另一个对象上的特定事件。使用此形式而不是other.on(event,callback,object)的优点是,listenTo允许对象跟踪事件,以后可以一次将其全部删除。回调将始终以object作为上下文进行调用。
view.listenTo(model, 'change', view.render);
很好地解释了
this
指的是调用对象listenTo
的对象。例如:
object.listenTo(...)
将对象作为上下文,即this
将是回调中的对象。上述问题中的代码段实质上是在视图对象上调用listenTo,因此
this
实际上是视图关于javascript - 什么在主干的listenTo()中引用“this”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38566466/