jQuery本身是一个函数对象:
jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery)};
几个重要的函数:
jQuery.fn=jQuery.prototype={
init:function(selector,context,rootjQuery){....},
//...........
}
当调用jQuery函数,并对其进行传递参数,返回来的是init初始化的对象:
如:jQuery('#id'),得到:
{
'0':id,
'length':1,
'context':document
}
jQuery.fn.init.prototype=jQuery.fn; 使得,jQuery初始化得到的对象,继承jQuery.fn中的属性和方法;
jQuery.extend=jQuery.fn.extend=function(){...},使得可以通过调用extend方法来对jQuery、jQuery.fn进行添加成员,包括添加属性和方法,也就达到了扩展了jQuery的方法;
而得到的jQuery对象,所有的方法和属性都是继承于jQuery.fn之上,而jQuery.fn的属性扩展基于extend的调用;譬如:
jQuery.fn.extend({
addFn1:function,
addFn2:function
}),则让jQuery对象可以调用addFn1,addFn2的方法;
在源码选择器处理,则用到了一个非常重要的类Sizzle;
jQuery.fn.find=Sizzle;所以在jQuery对象调用find的时候,实际上调用的Sizzle函数;