Backbone.js"Todos"示例 - 不确定为什么某个代码片段有效

Nat*_*ley 2 javascript backbone.js

这个问题是关于"Todos"Backbone.js示例,该示例位于:http: //documentcloud.github.com/backbone/docs/todos.html

下面的代码块位于" 应用程序 "部分,并遍历Todos集合.我的问题是addOne函数作为对Todos集合的引用传递,但该函数有一个引用this,这thisTodos集合对象调用函数时引用的函数不同.

addOne: function(todo) {
    var view = new TodoView({model: todo});
    this.$("#todo-list").append(view.render().el);
},
addAll: function() {
    Todos.each(this.addOne);
},
Run Code Online (Sandbox Code Playgroud)

当调用者没有在实例化AppView对象的上下文中调用它时,为什么函数正确执行?

Nat*_*ley 5

我刚刚解决了.在我看来,默认情况下this引用该window对象并且看作$全局jQuery寄存器,即使在没有上下文对象的情况下调用该函数也会起作用.