我正在查看主干的来源,事件部分,并且在大多数情况下它是有意义的,除了上下文存储两次的行。
在一种情况下,它获取传递给的值on()
。在第二个实例中,它获取传递的值,但如果没有传递,它获取当前上下文 - this
。
on: function(name, callback, context) {
if (!(eventsApi(this, 'on', name, [callback, context]) && callback)) return this;
this._events || (this._events = {});
var list = this._events[name] || (this._events[name] = []);
list.push({callback: callback, context: context, ctx: context || this}); // here
return this;
},
令人困惑的一件事是,有时this._events[name]
会保存到局部变量list
(开和关),有时会保存到局部变量effects
(触发器)。
每个的明确用途
.ctx
用于triggerEvents()
..context
用于off()
.