总体结构

代码清单 2-1 构造 jQuery 对象模块的总体源码结构
16 (function( window, undefined ) {            // 自调用匿名函数,当jQuery初始化时,这个自调用匿名函数包含的所有JavaScript代码将被执行。
        // 构造 jQuery 对象
22         var jQuery = (function() {            // 定义变量jQuery,自调用匿名函数返回jQuery构造函数并赋值给变量jQuery
25             var jQuery = function( selector, context ) { // 定义变量jQuery,它的值是jQuery构造函数,955行返回并赋值给第22行的变量jQuery,这两个jQuery变量是等价的,都指向jQuery构造函数
27                 return new jQuery.fn.init( selector, context, rootjQuery ); // 调用jQuery构造函数时,实际返回的是jQuery.fn.init()的实例。
28             },
            // 一堆局部变量声明
97             jQuery.fn = jQuery.prototype = {    // 构造函数jQuery()的原型对象
98                 constructor: jQuery,            // 覆盖原型对象的属性constructor,使它指向jQuery构造函数
99                 init: function( selector, context, rootjQuery ) { ... },    // 定义原型方法jQuery.fn.init,负责解析参数selector和context的类型并执行相应的查找
                // 一堆原型属性和方法
319         };
322         jQuery.fn.init.prototype = jQuery.fn;    // 用jQuery构造函数的原型对象jQuery.fn覆盖了jQuery.fn.init()的原型对象。
324         jQuery.extend = jQuery.fn.extend = function() { ... }; // 定义了jQuery.extend() 和 jQuery.fn.extend(),用于合并两个或多个对象的属性到第一个对象
388         jQuery.extend({            // 执行jQuery.extend()在jQuery构造函数上定义了一堆静态属性和方法
                // 一堆静态属性和方法
892         });
955         return jQuery;
957     })();
        // 省略其他模块的代码
9246     window.jQuery = window.$ = jQuery;    // jQuery变量暴露给全局作用域window,并定义了别名$
9266 })( window );

posted @ 2017-06-29 16:42  李小兜  阅读(182)  评论(0编辑  收藏  举报