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父级以及同级元素查找介绍
Sep 04 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
Dec 08 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
聊聊JavaScript如何实现继承及特点
Apr 07 Javascript
JS引用传递与值传递的区别与用法分析
Jun 01 Javascript
vue-router重定向不刷新问题的解决
Jun 25 Javascript
微信小程序中转义字符的处理方法
Mar 28 Javascript
JavaScript实现网页跨年倒计时
Dec 02 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
使用symfony命令创建项目的方法
2016/03/17 PHP
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
jQuery事件对象总结
2016/10/17 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
js简易版购物车功能
2017/06/17 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
python网页请求urllib2模块简单封装代码
2014/02/07 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
岗位职责范本
2013/11/23 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
警告通知
2015/04/25 职场文书
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers