jQuery 源码 jQuery的创建模式

184 阅读1分钟

介绍

    当我们使用jQuery的时候可以直接调用$()或者jQuery就直接创建了jQuery的实例,而不用显示的去new jQuery()来使用,jQuery使用了构造器与原型模式相结合的方式创建对象。

创建对象

    new 了一个构造器,来创建一个对象,并返回给jQuery

var version = '3.5.1',
jQuery = function (selector, context) {
    return jQuery.fn.init(selector, context)
}

jQuery对象绑定属性

给jQuery绑定属性fn,并且让jQuery对象与jQuery原型建立链接

jQuery.fn = jQuery.prototype = {

}

jQuery 与init建立关系

jQuery.fn的属性增加了一个init函数,并且赋值给了init,并且jQuery的原型赋值给了init的原型。这样两者就共享了jQuery原型上的方法或者属性。

var rootjQuery ,
    rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
    init = jQuery.fn.init = function (selector, context, root) {}
    init.prototype =jQuery.fn

使用

当我们使用的时候其实就是 new jQuery.fn.init ()这个构造器,返回的对象赋值给init对象,也就表示着初始化进行,当jQuery.fn赋值给init.prototype,意味着初始化结束。