同事弄的一份对jquery的结构的罗列

来源:互联网 发布:反编译 exe 知乎 编辑:程序博客网 时间:2024/04/29 03:47
 //捋一下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 ) {
       
returnnew 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({
       
    })
   
})()