//捋一下jquery的结构.
1.(function(){
/*--框架体--*/
window = this,
undefined, //据说var undefined直接量会快于undefined.未考证
_jQuery = window.jQuery, _$ = window.$ //如果window里有覆盖,临时存储进_jQuery 为后面的 noConflict (交出$控制权给其它js库) 作临时存储 /*jquery返回的对象只是根据selecter字符串取到的dom对象,经jQuery.fn.init包装之后的返回值(一个jQuery对象).
  除些之外, jQuery对此方法还有其它扩展,比如参数如果是function 则$(fn)实际为$.ready(fn) 等等之类
*/
jQuery = window.jQuery = window.$ = function( selector, context ) {
return new jQuery.fn.init( selector, context );
}, //定义jQuery基本原型,并作一份拷贝给 jQuery.fn
$.fn = $.prototype = {
init: function(selector, context){...},
...
} //现在开始对jQuery及jQuery.fn作基于类拷贝方式的扩展方法. 下面是方法.
jQuery.extend = jQuery.fn.extend = function(p) {...}  //扩展jQuery,使我们可以用 $.each   $.isFunction  之类的函数。这些函数并不是基于prototype 而是属于jQuery的静态方法.
jQuery.extend({
each:function(){...},
isFunction: function(){...}
})

//让init函数也具有jQuery的原型, 这样init函数包装出来的对象。即是jquery对象
$.fn.init.prototype = $.fn; //一个匿名函数, 实现css  selector, 这个匿名函数里定义了 Sizzle对象,用来分析selector参数 最终Sizzle 对象被赋值给window.

(function(){...})()

window.Sizzle = Sizzle;
jQuery.find = Sizzle;
jQuery.filter = Sizzle.filter;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
...

//定义事件
jQuery.event = {}
jQuery.Event = function(){}
jQuery.Event.prototype = {} $.extend({
/*事件*/
}) //REQUEST库
$.extend({
/*ajax*/
}) //效果库
$.extend({
/*fx*/
}) .... //插件机制 
$.extend({

})

})()