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

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

时间: 2024-10-20 19:10:43

jQuery源码学习笔记:总体架构的相关文章

菜鸟的jQuery源码学习笔记(二)

jQuery对象是使用构造函数和原型模式相结合的方式创建的.现在来看看jQuery的原型对象jQuery.prototype: 1 jQuery.fn = jQuery.prototype = { 2 //成员变量和方法 3 } 这里给原型对象起了一个别名叫做jQuery.fn.要注意的是这个jQuery.fn可不是jQuery对象的属性,而是jQuery构造方法本身的属性,它是不会传给它所创建的对象的.如果你在控制台敲$().fn的话输出的结果会是undefined.接下来看看原型对象里面有些

jQuery源码学习笔记:构造jQuery对象

3.1源码结构: (function( window, undefined ) { var jQuery = (function() { // 构建jQuery对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // jQuery对象原型 jQuery.fn = jQuery.prototype = { constructor:

jQuery源码学习笔记:扩展工具函数

// 扩展工具函数 jQuery.extend({ // http://www.w3school.com.cn/jquery/core_noconflict.asp // 释放$的 jQuery 控制权 // 许多 JavaScript 库使用 $ 作为函数或变量名,jQuery 也一样. // 在 jQuery 中,$ 仅仅是 jQuery 的别名,因此即使不使用 $ 也能保证所有功能性. // 假如我们需要使用 jQuery 之外的另一 JavaScript 库,我们可以通过调用 $.noC

jQuery源码学习笔记五 六 七 八 转

jQuery源码学习笔记五 六 七 八 转 Js代码   <p>在正式深入jQuery的核心功能选择器之前,还有一些方法,基本都是数组方法,用于遴选更具体的需求,如获得某个元素的所有祖选元素啦,等等.接着是其缓存机制data.</p> <pre class="brush:javascript;gutter:false;toolbar:false"> //@author  司徒正美|なさみ|cheng http://www.cnblogs.com/ru

jQuery源码分析-01总体架构

1. 总体架构 1.1自调用匿名函数 self-invoking anonymous function 打开jQuery源码,首先你会看到这样的代码结构: (function( window, undefined ) { // jquery code })(window); 1.这是一个自调用匿名函数.在第一个括号内,创建一个匿名函数:第二个括号,立即执行 2.为什么要创建这样一个“自调用匿名函数”呢? 通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命

jQuery源码学习笔记(1)

在慕课网上学习jQuery源码,做一些笔记小研究. 第1章 节点遍历 第2章 文档处理 第3章 元素操作 第4章 样式操作 第5章 事件体系 第6章 数据交互 第7章 动画引擎 首先瞅瞅目录,大概可以了解一下这个是怎么讲的QAQ. 今天学习的是节点遍历. 遍历的对象主要是:1 祖先 2 同胞兄弟 3 后代 4 过滤 我们先看祖先. .parent()方法允许我们能够在DOM树中搜索到这些元素的父级元素,从有序的向上匹配元素,并根据匹配的元素创建一个新的 jQuery 对象. .parents()

jquery源码学习笔记(一)jQuery的无new构建

本人是一名.net程序员..... 你一个.net coder 看什么jQuery 源码啊? 原因吗,很简单.技多不压身吗(麻蛋,前端工作好高...羡慕). 我一直都很喜欢JavaScript,废话不多说了,直接切入正题. 最近看了好几篇jQuery 源码的文章,对于jQuery的无new构建  很是不解. 查了很多资料,总算是搞明白了. jQuery的无new构建 jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作. 回想一下使用 jQuery 的时候,实例化一个 jQuery

一.jQuery源码解析之总体架构

1 (function (window, undefined) { 2 //构建jQuery对象 3 var document = window.document, 4 navigator = window.navigator, 5 location = window.location; 6 var jQuery = (function () { 7 var jQuery = function (selector, context) { 8 return new jQuery.fn.init(s

jQuery源码学习1——整体架构篇

由于jQuery的源码比较复杂,所以我选择从jQuery1.0.0版本开始学习,逐步深入. 而且本系列文章包含大量的个人观点,纯属本人学习的记录 jQuery1.0.0只有1800行左右的代码,相对来讲看起来还是比较简单的 首先,想说一下我对jQuery的理解 jQuery其实就是一个很大的构造函数 它为我们提供了很多实例化方法 当然,由于在js中函数本身就是对象 因此jQuery也提供了很多的静态方法 个人认为,这些静态方法更为底层 今天把jQuery的架构梳理了一下 其实我们可以将其中的方法