在js中关于return this的问题

on: function(event, fn) {
    var handles = this._handles || (this._handles = {}),
      calls = handles[event] || (handles[event] = []);

    // 找到对应名字的栈
    calls.push(fn);

    return this;
  }

在这个函数中,return this到底是什么意思,调用这个函数的时候并没有和赋值语句一起使用啊?请问为何还要使用?

阅读 6.8k
5 个回答
on显然是对象的方法,那么这里的this指向的就是这个对象.
另外建议你多了解下JavaScript里面的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 {}

方便链式调用

比如obj.foo().bar().baz()

链式调用
指向的是当前对象

jQuery链式调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题