参照jQuery 2.0.3版本(http://files.cnblogs.com/files/snoy/jquery-2.0.3.js")来进行的源码分析

从代码的最外层可以看到是一个IIFE即自执行匿名函数

(function(window, undefined) {

})(window)

从代码的21~94行定义了一些变量和函数

重点分析下面的代码 (1)

  jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
},

代码的8826行的代码(2)

window.jQuery = window.$ = jQuery;

通过上面(2)代码就把上面(1)jQuery保存起来的函数暴露给window对象了,就可以通过jQuery或者$来访问(1)的函数了

这就是对外提供的接口

代码的96~281给jQuery对象添加一些方法和属性

jQuery.fn=jQuery.prototype={

};

代码的285~347是jQuery继承的一些方法

jQuery.extend = jQuery.fn.extend = function() {
}

代码的349~818是jQuery扩展的一些工具方法类似于静态方法比如说$.trim()

jQuery.extend();

代码的877~2856是Sizzle CSS Selector复杂选择器(http://sizzlejs.com/)

代码的2880~3042是jQuery回调对象作用是函数的统一管理

jQuery.Callbacks=function(){};

代码的3043~3183是延迟对象作用是异步的统一管理

jQuery.extend({
Deferred;function(){},
when:function(){}
});

代码的3184~3295是对浏览器功能的检测,而不是去判断浏览器类型

jQuery.support=(function(support){})({});

代码的3308~3652是对数据data的缓存

代码的3653~3797是对queue的管理

jQuery.extend();
jQuery.fn.extend();

代码的3803~4299是对元素属性的操作

代码的4300~5128是事件操作的相关方法

代码的5140~6057是和DOM有关的操作

代码的6058~6620是元素CSS样式的操作

代码的6621~7854是form表单提交的功能(ajax,cors,load,getJson,getScript。。。)

代码的7785~8584是animate运动的操作

代码的8585~8792是位置和尺寸的操作

代码的8504~8821是jQuery支持模块化的方式

代码的8504~8827是jQuery对外提供的暴露接口

jquery框架概览(一)的更多相关文章

  1. jquery框架概览(二)

    (function(window, undefined) { })(window) window对象作为参数传进闭包的好处 JavaScript 全局对象.函数以及变量均自动成为 window 对象的 ...

  2. 小谈Jquery框架

    现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...

  3. jQuery框架分析第一章: 第一个匿名函数

    我的jQuery版本为1.7* 这个版本代码比之前的版本优化了很多,结构也清晰了不少,就用最新的吧. 打开jQuery源代码 首先你能看到所有代码被一个 (function(window,undefi ...

  4. jQuery框架的简单使用(H5)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 浅析jQuery框架与构造对象

    这是一些分析jQuery框架的文字    面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面的知识 4.熟练使用jQue ...

  6. Spring Framework 5.0.0.M3中文文档 翻译记录 Part I. Spring框架概览1-2.2

    Part I. Spring框架概览 The Spring Framework is a lightweight solution and a potential one-stop-shop for ...

  7. 引用jquery框架后出错

    问题描述:当引用了jquery框架后,页面的js不能正常工作. 后面我的解决办法:是因为在引用 jquery的框架时的代码为 <script type="text/javascript ...

  8. Jquery框架

    现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说 ...

  9. jQuery框架-2.jQuery操作DOM节点与jQuery.ajax方法

    一.jQuery操作DOM 内部插入操作: append(content|fn):向每个匹配的元素内部追加内容. prepend(content):向每个匹配的元素内部前置内容. 外部插入操作: af ...

随机推荐

  1. SQL基础教程(第2版)第4章 数据更新:4-3 数据的更新(UPDATE)

    第4章 数据更新:4-3 数据的更新(UPDATE) ● 使用UPDATE语句可以更改(更新)表中的数据.● 更新部分数据行时可以使用WHERE来指定更新对象的条件.通过WHERE子句指定更新对象的U ...

  2. JavaScipt 动画引擎

    队列操作 jquery中有一个Queue队列的接口,这个模块没有单独拿出来作为一个章节是因为这个是内部专门为动画服务的,Queue队列如同data数据缓存与Deferred异步模型一样,都是jQuer ...

  3. UML-重构

    1.重构是什么? 重构是重写或重新构建已有代码的结构化和规律性方法,但不会改变已有代码的外在行为,而是采用一系列少量转换的步骤,并且每一步都结合了重新执行的测试.重构并不是全部推翻原有代码结构. 2. ...

  4. 图形化编程娱乐于教,Kittenblock实例,为背景添加音乐

    图形化编程娱乐于教,Kittenblock实例,为背景添加音乐 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关键的问题 ...

  5. pip常见使用方法

    pip可以理解类似yum管理rpm包的管理python包工具 pip参数解释 pip --help Usage: pip <command> [options] Commands: ins ...

  6. Java--类初始化

    package httpclient.demo; public class StaticTest { public static void main(String[] args) { staticFu ...

  7. Dart异步编程-future

    Dart异步编程包含两部分:Future和Stream 该篇文章中介绍Future 异步编程:Futures Dart是一个单线程编程语言.如果任何代码阻塞线程执行都会导致程序卡死.异步编程防止出现阻 ...

  8. Channels(纪念一下卡我心态的一道题)

    链接:https://ac.nowcoder.com/acm/contest/3947/C来源:牛客网 题目描述 Nancy喜欢学习,也喜欢看电视. 为了想了解她能看多长时间的节目,不妨假设节目从时刻 ...

  9. Half of UK 10-year-olds own a smartphone

    1. preposition n. 介词  pronoun  n. 代词 2. despite /preposition. (1) used to say that something happens ...

  10. 你知道你对 JSON Web Token 的认识存在误解吗

    1.前言 JSON Web Token (JWT) 其实目前已经广为软件开发者所熟知了,但是 JOSE (Javascript Object Signing and Encryption) 却鲜有人知 ...