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 相关文章推荐
JavaScript对象模型-执行模型
Apr 28 Javascript
读JavaScript DOM编程艺术笔记
Nov 15 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
Jan 09 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
JavaScript 深层克隆对象详解及实例
Nov 03 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
Feb 08 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
javascript 回调函数详解
2014/11/11 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
python处理html转义字符的方法详解
2016/07/01 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
pyhton列表转换为数组的实例
2018/04/04 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
python安装sklearn模块的方法详解
2020/11/28 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
语文教学感言
2014/02/06 职场文书
新学期决心书
2014/03/11 职场文书
颁奖晚会主持词
2014/03/25 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
2016高考寄语集锦
2015/12/04 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB