jquery中的原型链

var jQuery = function(global, factory) {
    return new jQuery.fn.init();
}

jQuery.fn = jQuery.prototype = {
    constructor: jQuery,
    init: function() {
        this.jquery = 3;
        return this;
    },
    each: function() {
        console.log('each');
        return this;
    }
}

jQuery.fn.init.prototype = jQuery.fn;

// init构造函数
jQuery().each().each()

上面是一段jQuery源码,我的问题是为什么代码最后一行的第二个each函数还能够执行

阅读 3.7k
4 个回答

因为你return的是this,别说两个了,10个也可以

clipboard.png

原型中this指向的是实例对象,each里return this来返回这个对象,从而实现链式调用

两个each跟一个each效果一样,对象都是jQuery

链式编程

return this

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