jQuery源码分析

大家都知道jQuery的宗旨就是以最少的代码获得高效率的成果,其核心就是选择器。

我们来看看jQuery对象是如何生成的。

     首先我们了解它的书写模式,我们可以看到大部分的插件都是类似这种形式书写的

(function(window){

 //do something

})(window)

      为什么要这样写呢?

      1,这是一个自调用匿名函数,第一个括号创建匿名函数,第二个括号立即执行。

      2,形成自己的命名空间(类似于java中的包管理),该命名空间中的变量和方法不会与全局的命名空间

      一,总体架构

     

(function( window, undefined ) {

    // 构造jQuery对象

var jQuery = function( selector, context ) {

        returnnew jQuery.fn.init( selector, context, rootjQuery );

    }

        //构造jQuery对象原型(既js对象的复制引用)

    jQuery.fn = jQuery.prototype = {

       init: function(selector, context, rootjQuery){},

       ......

    }

    jQuey.fn.init.prototype = jQuery.fn;

 window.jQuery = window.$ = jQuery;

})(window);


         jQuery对象通过工厂模式创建,既哪来就可以使用不需要使用new创建,但简单的return new object()会产生重复调用的错误,所以returnnew jQuery.fn.init( selector, context, rootjQuery )这种方式返回对象。
        jQuey.fn.init.prototype = jQuery.fn该代码的关键是将this指针指向jQuery.fn下的属性和方法
        最后将jQuery对象挂载在window对象下。

       至此jQuery对象创建过程大致结束。小弟第一次写博客文章,有不对之处望指正。下一篇幅将讲解prototype的知识,再接着后面的话题继续解析jQuery

    

相关推荐