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 的Document属性和方法集合
Jan 25 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
Nov 13 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 Vue.js
详解Typescript 内置的模块导入兼容方式
May 31 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
Vue使用screenfull实现全屏效果
Sep 17 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中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
uploadify 3.0 详细使用说明
2012/06/18 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
Vue响应式原理详解
2017/04/18 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
对python判断是否回文数的实例详解
2019/02/08 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python将字母转化为数字实例方法
2019/10/04 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
美容师的职业规划书
2013/12/27 职场文书
心得体会怎么写
2013/12/30 职场文书
消防宣传口号
2014/06/16 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
mysql脏页是什么
2021/07/26 MySQL