jQuery学习笔记之总体架构


Posted in Javascript onJune 03, 2014

先来看代码:

(function (window, undefined) {
            //构建jQuery对象
            var document = window.document,
                navigator = window.navigator,
                location = window.location;
            var jQuery = (function () {
                var jQuery = function (selector, context) {
                    return new jQuery.fn.init(selector, context, rootjQuery);
                },
                _jQuery = window.jQuery;
                //............................
                //............................                  
                return jQuery; //981行
            })();
            //工具方法:Utilities;我在jQuery源码中没有发现是哪一块,如果有发现的.可以告诉我一下
            //回调函数列表 Callbacks
            //异步队列 Deferred
            //浏览器功能测试 Support
            //数据缓存  Cache
            //属性操作  Attributes
            //队列 Queue
            //事件系统 Event
            //选择器 Sizzle
            //Dom遍历 Traversing
            //Dom操作 Manipulation
            //样式操作 CSS
            //异步请求 Ajax
            //动画 Effects
            //坐标 Offset. 尺寸Dimensions
            window.jQuery = window.$ = jQuery;
        })(window);

1.这个就是jQuery源码的结构了.个人觉得还是相当的清晰和有条理的.

2.jQuery的整个最外层就是一个自调用的匿名函数,这样就可以创建一个闭包.该闭包中的各种变量,函数就不会和闭包外的变量和函数发生影响,确保了jQuery的独立性,安全性.

3最后一句代码:window.jQuery = window.$ = jQuery;则是定义了一个全局变量jQuery和$.并且吧私有变量jQuery的引用赋给了这个全局变量.

4.将最大的对象window当做实参传递到函数中,使得window变成了局部变量,可以大大的缩短查找window的查找时间,同样节省资源.

5,第二个参数undefined,是一个形参,在实际执行的时候,没有获得参数赋值,那么系统就会给他自动赋值成undefined.这样在jQuery的闭包中确保了undefined值的真时性,因为undefined在jQuery的外面有可能被篡改掉.尽管这个篡改的结果,各种浏览器不一样.

Javascript 相关文章推荐
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
详细介绍8款超实用JavaScript框架
Oct 25 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
javascript常用代码段搜集
Dec 04 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
Jul 27 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
vue组件挂载到全局方法的示例代码
Aug 02 Javascript
浅谈React Event实现原理
Sep 20 Javascript
jquery控制select的text/value值为选中状态
Jun 03 #Javascript
Javascript中浮点数相乘的一个解决方法
Jun 03 #Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 #Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 #Javascript
php+js实现倒计时功能
Jun 02 #Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 #Javascript
node.js入门教程
Jun 01 #Javascript
You might like
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
菜鸟javascript基础整理1
2010/12/06 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python实现自动发送邮件功能
2021/03/02 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
协议书的格式
2014/04/23 职场文书
活动总结报告范文
2014/05/04 职场文书
《失物招领》教学反思
2016/02/20 职场文书