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 相关文章推荐
js表数据排序 sort table data
Feb 18 Javascript
提高网站性能之 如何对待JavaScript
Oct 31 Javascript
在线所见即所得HTML编辑器的实现原理浅析
Apr 25 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
用NODE.JS中的流编写工具是要注意的事项
Mar 01 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
浅谈jQuery before和insertBefore的区别
Dec 04 Javascript
浅析Ajax语法
Dec 05 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 Javascript
Vue强制组件重新渲染的方法讨论
Feb 03 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实现图片转换成ASCII码的方法
2015/04/03 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
JS实现随机点名器
2020/04/12 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
OpenCV实现人脸识别
2017/04/07 Python
Django实现网页分页功能
2019/10/31 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
python连接PostgreSQL过程解析
2020/02/09 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
入党积极分子思想汇报范文
2014/01/05 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
个人向公司借款协议书
2014/10/09 职场文书
听课评课活动心得体会
2016/01/15 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL