介绍
当我们使用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,意味着初始化结束。