on: function(event, fn) {
var handles = this._handles || (this._handles = {}),
calls = handles[event] || (handles[event] = []);
// 找到对应名字的栈
calls.push(fn);
return this;
}
在这个函数中,return this到底是什么意思,调用这个函数的时候并没有和赋值语句一起使用啊?请问为何还要使用?
如果你知道jq的链式写法, 就知道为什么要return this了...
var a = {
b: function(bb) {
console.log(bb)
return this;
},
c: function(cc) {
console.log(cc)
return this;
},
d: function(dd) {
console.log(dd)
return this;
}
}
a.b(1).c(2).d(3);
// 1
// 2
// 3
// Object {}
链式调用
指向的是当前对象
on显然是对象的方法,那么这里的this指向的就是这个对象.
另外建议你多了解下JavaScript里面的this关键字,这是基础
方便链式调用
比如obj.foo().bar().baz()
jQuery链式调用