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 相关文章推荐
jQuery.query.js 取参数的两点问题分析
Aug 06 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
JQuery查找DOM节点的方法
Jun 11 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
Jun 01 Javascript
HTML页面,测试JS对C函数的调用简单实例
Aug 09 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 Javascript
Bootstrap实现提示框和弹出框效果
Jan 11 Javascript
Angular 4 指令快速入门教程
Jun 07 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
angularjs实现天气预报功能
Jun 16 Javascript
Vue实现简单计算器案例
Feb 25 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
PHP脚本的10个技巧(4)
2006/10/09 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
javascript 对象的定义方法
2007/01/10 Javascript
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
python3中set(集合)的语法总结分享
2017/03/24 Python
在python中安装basemap的教程
2018/09/20 Python
Python中GIL的使用详解
2018/10/03 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
关于期中考试的反思
2014/02/02 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python