首页 > 代码库 > jQuery源码学习笔记:总体架构

jQuery源码学习笔记:总体架构

1.1、自调用匿名函数:

(function( window, undefined ) {
    // jquery code
})(window);

这是一个自调用匿名函数,第一个括号内是一个匿名函数,第二个括号立即执行,传参是window。

1、为什么有自调用匿名函数?

通过定义匿名函数,创建了一个“私有”空间,jQuery必须保证创建的变量不能和导入它的程序发生冲突。

2、为什么传入window?

传入window使得window由全局变量变成局部变量,jQuery访问window时,不需要返回到顶层作用域,可更快访问window,更重要的是,可以在压缩代码时进行优化。

3、为什么有undefined?

在自调用匿名函数作用域内,确保undefined是真的未定义。因为undefined能够被重写。

1.2、总体架构:

(function( window, undefined ) {
    // 构造jQuery对象
var jQuery = function( selector, context ) {
        return new jQuery.fn.init( selector, context, rootjQuery );
    }
// 工具函数 Utilities
// 异步队列 Deferred
// 浏览器测试 Support
// 数据缓存 Data
// 队列 queue
// 属性操作 Attribute
// 事件处理 Event
// 选择器 Sizzle
// DOM遍历
// DOM操作
// CSS操作
// 异步请求 Ajax
// 动画 FX
// 坐标和大小
    window.jQuery = window.$ = jQuery;
})(window);