参照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. TCP三次握手和四次挥手相关

    客户端A 服务端BSYN (建立连接位标识 1为建立联机) ACK (确认位标识 1为确认) seq (一个随机顺序码) ack(一个确认号码,通常为seq+1) 三次握手:1.A 发起建立 连接 的 ...

  2. 寒假day17-本周计划

    完善人才的数据挖掘模块 结合当下疫情完成人才动态模块 修正人才标签部分 优化界面

  3. Opencv从文件中播放视频

    1.VideoCapture()括号中写视频文件的名字,在播放每一帧的时候,使用cv2.waitKey()设置适当的持续时间,太低会播放的很快,太高会很慢,通常情况下25毫秒就行了. 2.获取相机/视 ...

  4. PHP语言编写的磁力搜索工具下载BT种子 支持transmission、qBittorrent

    磁力搜索网站2020/01/12更新 https://www.cnblogs.com/cilisousuo/p/12099547.html PT种子.BT种子搜索功能 IYUU自动辅种工具,目前能对国 ...

  5. uploadify ASP.net 使用笔记

    <script type="text/javascript" src="jquery.uploadify.min.js"></script & ...

  6. html5中如何去掉input type date默认样式

    html5中如何去掉input type date默认样式 1.时间选择的种类: HTML代码: 选择日期:<input type="date" value="20 ...

  7. 01 语言基础+高级:1-3 常用API第一部分_day08【String类、static、Arrays类、Math类】

    day08[String类.static.Arrays类.Math类] String类static关键字Arrays类Math类 教学目标能够使用String类的构造方法创建字符串对象能够明确Stri ...

  8. UML-如何创建领域模型?

    以当前迭代中所要设计的需求为界: 1.寻找概念类 2.将其绘制为类图 3.添加关联和属性

  9. SaltStack中状态间关系unless、onlyif、require、require_in、watch、watch_in

    1.unless 检查的命令,仅当unless选项指向的命令返回值为false时才执行name定义的命令 cmd.run: {% "] %} - name: 'nohup sh /alida ...

  10. Deep learning with Python

    一.导论 1.1 人工智能.机器学习.深度学习 人工智能.机器学习 人工智能:1980年代达到高峰的是专家系统,符号AI是之前的,但不能解决模糊.复杂的问题. 机器学习是把数据.答案做输入,规则作输出 ...