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代码
Jan 12 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
JavaScript中常见的字符串操作函数及用法汇总
May 04 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
Aug 24 Javascript
Vuex简单入门
Apr 19 Javascript
详解Vue路由开启keep-alive时的注意点
Jun 20 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
jQuery Dom元素操作技巧
Feb 04 jQuery
详解es6超好用的语法糖Decorator
Aug 01 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
原理深度解析Vue的响应式更新比React快
Apr 04 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的输入输出流
2007/02/14 PHP
Php图像处理类代码分享
2012/01/19 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
js同时按下两个方向键
2007/12/01 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
Python端口扫描简单程序
2016/11/10 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
python实现事件驱动
2018/11/21 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
六十大寿答谢词
2014/01/12 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang