jQuery 2 的版本与jQuery 1的版本相比,没有再考虑IE6,7,8的兼容问题,因此使用时如果不用考虑IE6,7,8就用jQuery 2的版本,如果需要考虑IE6,7,8就使用jQuery 1的版本。

jQuery对象是一个以DOM为对象的特殊数组,并包含大量方法,简单可以理解为:

function jQuery(){

var jquery = [dom1, dom2, dom3];

jquery.fn1 = function(){…};

jquery.fn2 = function(){…};

return jquery;

}

jQuery源码中的精髓:初始化的设计思路,选择器的设计方法,事件处理的设计方法,动画效果的设计机制,ajax封装的设计思路,插件机制的设计,兼容性处理的设计方法等。

jQuery-2.0.3.js源码一共8829行,下面划分几个部分对每部分的功能作个简单概括。

(14) 第14行到8829行,(function(window,undefined){})(); 定义自执行匿名函数,所有源码都包括在匿名函数中。

(21, 94) 定义了一些变量和函数 jQuery = function(){};

(96, 283)  jQuery.fn = jQuery.prototype = {…}; jQuery.fn.init.prototype = jQuery.fn; 这里看到prototype,就是jQuery对象的原型,主要给JQ对象,添加一些方法和属性

(285, 347) extend: JQ的继承方法, 为添加后续代码提供良好的扩展性,同时扩展插件也是从该继承该应地中扩展。   jQuery.extent = jQuery.fn.extent = function(){…};

(349, 817)  jQuery.extend({…});  扩展一些工具方法(静态方法),如$.trim(), $.proxy()等。

(877, 2856) Sizzle: 复杂选择器的实现

(2880, 3042) Callbacks: 回调对象: 对函数的统一管理, add, remove, has, empty, disable, fireWith, fire 等。

(3043, 3183) Deferred: 延迟对象: 对异步的统一管理(定时器,ajax,script,DOM等一些需要异步处理作一下统一管理)

(3184, 3295) support: 浏览器的功能检测

(3308, 3652) data(): 数据缓存,避免大数据量的元素挂载,预防内存泄露。

(3653, 3797) queue(): 队列管理,入队,出队,执行顺序的管理

(3803, 4299) attr() prop() val() addClass()等: 对元素属性的操作

(4300, 5128) on(), trigger(): 事件操作的相关方法

(5140, 6057) DOM操作: 添加 删除 获取 包装 DOM筛选等

(6058, 6620) css(): 样式的操作

(6621, 7854) 序列化操作,数据提交和ajax方法:ajax() load() getJSON() 等

(7855, 8584) animate(): 运动(动画)的实现方法

(8585, 8792) offset(): 位置和尺寸的方法

(8804, 8821) jQuery支持模块化的模式

(8826) window.jQuery = window.$ = jQuery; jQuery的符号简写为$,把jQuery挂载到window下,这样我们使用时就可以直接用jQuery(),或$()来调用jQuery,否则jQuery在局部内,调用不到。

转载于:https://www.cnblogs.com/sunshinegirl-7/p/5253008.html

前端学习-jQuery源码学习相关推荐

  1. 深入学习jquery源码之高德地图组件的使用

    深入学习jquery源码之高德地图组件的使用 高德地图组件是一类高度模块化的LBS服务组件,开发者通过调用相应标签便可轻松实现诸如在地图上标注点.查找附近poi.公交/驾车线路规划等功能.该类组件仅针 ...

  2. 深入学习jquery源码之queue()与dequeue()

    深入学习jquery源码之queue()与dequeue() queue(element,[queueName]) 概述 显示或操作在匹配元素上执行的函数队列 参数 element,[queueNam ...

  3. jQuery源码学习之Callbacks

    jQuery源码学习之Callbacks jQuery的ajax.deferred通过回调实现异步,其实现核心是Callbacks. 使用方法 使用首先要先新建一个实例对象.创建时可以传入参数flag ...

  4. jquery源码学习笔记三:jQuery工厂剖析

    jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...

  5. 深入学习jquery源码之attr()与removeAttr()

    深入学习jquery源码之attr()与removeAttr() attr(name|properties|key,value|fn) 概述 设置或返回被选元素的属性值. 参数 name String ...

  6. 深入学习jquery源码之ajaxSetup()

    深入学习jquery源码之ajaxSetup() ajaxComplete(callback) 概述: AJAX 请求完成时执行函数.Ajax 事件. XMLHttpRequest 对象和设置作为参数 ...

  7. 深入学习jquery源码之addClass()和toggleClass()与hasClass()

    深入学习jquery源码之addClass()和toggleClass()与hasClass() addClass(class|fn) 概述 为每个匹配的元素添加指定的类名. 参数 class Str ...

  8. 深入学习jquery源码之jQuery的选择器引擎Sizzle(一)

    深入学习jquery源码之jQuery的选择器引擎Sizzle Sizzle是一个纯javascript CSS选择器引擎.jquery1.3开始使用sizzle,Sizzle一反传统采取了相反的Ri ...

  9. 学习 jQuery 源码整体架构,打造属于自己的 js 类库

    虽然现在基本不怎么使用 jQuery了,但 jQuery流行 10多年的 JS库,还是有必要学习它的源码的.也可以学着打造属于自己的 js类库,求职面试时可以增色不少. 本文章学习的是 v3.4.1版 ...

  10. jQuery源码学习(1)——addClass

    最近比较闲,寻思着学习下jQuery源码,看了好多博客,很多都讲的比较详细.jQuery虽然只有那么200多K,但内容却比较丰富,对于我这样一个js菜鸟,看起来相当吃力.骨头太大,只能化整为零,从简单 ...

最新文章

  1. SpringBoot+JPA简单入门demo
  2. 今天谈一谈python自动化测试中使用异步
  3. 机器学习之挖掘melb_data.csv数据
  4. phpstorm 2017.1激活
  5. 有特殊步长适应的自适应差分脉码调制语音编码系统
  6. 设计模式-由浅到深的单例模式
  7. Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)
  8. 用原生JS写PHP里的Ajax
  9. Redis----windows下配置和运行
  10. 数据结构 Java数据结构 --- 反射
  11. 钢结构节点板计算小程序_节点应用程序目录结构
  12. 概率图模型--马尔可夫随机场
  13. r语言 面板数据回归_在R语言中进行面板数据分析
  14. git FETCH_HEAD 版本回滚 ORIG_HEAD
  15. 使用ARDUINO UNO和无源蜂鸣器实现音乐-《两只老虎》
  16. 诊断和响应故障_恢复表和表分区
  17. Android12 新特性及适配指南
  18. 强制用户使用定向推送功能是什么意思?整改措施请收好
  19. 2017年加密货币进入国际金融体系
  20. xuperchain源码分析-合约

热门文章

  1. 基于卷积神经网络的人脸识别项目_使用Tensorflow-gpu+dilib+sklearn
  2. sql数据库快照与恢复 规则绑定
  3. 2015年趋势科技笔试A卷
  4. VB.NET自动操作其他程序(4)--读取、设置其他软件listview控件的内容
  5. 分段锁——ConcurrentHashMap
  6. Python核心编程笔记---- print@2
  7. Sublime Text 收藏笔记
  8. 【Jenkins】构建后生成下载二维码并邮件通知
  9. Bzoj1070 [SCOI2007]修车
  10. JDBC在Java Web中的应用——分页查询