jQuery源码分析-01总体架构

1、自调用匿名函数

(function( window, undefined ) {

    // jquery code

})(window);

创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命名空间。

传入window,使得window全局变量变成局部变量,同时将window作为参数传入,可以在压缩代码时进行优化。

(function(a,b){})(window); // window 被优化为 a 

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

源码最后的分号:为了更好的兼容性和健壮性,请在每行代码后加上分号并养成习惯。

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);

 

posted @ 2017-08-04 13:43  jsbally  阅读(103)  评论(0编辑  收藏  举报