Backbone.js on(),这最后引用的是什么?

我正在学习Backbone,我正在试图找出我正在使用’on’函数的库。 我认为这是jQuery,但如果是这样,我不理解API。 有人可以解释’on’function或链接我的一些文档。 第一个参数是事件。 第二个参数是被调用的函数。 最后’this’指的是什么(我假设调用类),为什么需要它? 这是我的代码,直接来自Addy Osmani,这是AppView:

initialize : function() { this.input = this.$('#new-todo'); this.allCheckbox = this.$('#toggle-all')[0]; this.$footer = this.$('#footer'); this.$main = this.$('#main'); window.app.Todos.on('add', this.addOne, this); window.app.Todos.on('reset', this.addAll, this); window.app.Todos.on('change:completed', this.filterOne, this); window.app.Todos.on("filter", this.filterAll, this); window.app.Todos.on('all', this.render, this); app.Todos.fetch(); }, 

这种情况下的on方法来自Backbone的Event模块。 它接受三个参数 – 事件名称,函数和上下文。上下文决定函数中’this’的值应该是什么。

Todos.on("filter", this.filterAll, this); 你只是要求函数filterAll中的’this’值应该是你的views实例

 object.on(event, callback, [context]) 

根据backbone.js doc ,最后一个[context]参数是将被传递给回调函数的可选上下文。

在Addy的ToDo示例中, 是传递对点击的todo视图的引用:

 // Add a single todo item to the list by creating a view for it, and // appending its element to the `
    `. addOne: function( todo ) { var view = new app.TodoView({ model: todo }); $('#todo-list').append( view.render().el ); },