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 相关文章推荐
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
csdn 批量接受好友邀请
Feb 19 Javascript
jquery如何把参数列严格转换成数组实现思路
Apr 01 Javascript
自己使用js/jquery写的一个定制对话框控件
May 02 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
javascript 动态脚本添加的简单方法
Oct 11 Javascript
轻松理解Javascript变量的相关问题
Jan 20 Javascript
浅谈Angular路由守卫
Aug 26 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 Javascript
12个提高JavaScript技能的概念(小结)
May 09 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
数字转英文
2006/12/06 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
详解python的argpare和click模块小结
2019/03/31 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
计算机专业应届毕业生自荐信
2013/09/26 职场文书
中职生自我鉴定范文
2013/10/03 职场文书
内业资料员岗位职责
2014/01/04 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
应届大学生自荐书
2014/06/17 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
行政助理岗位职责
2015/02/10 职场文书
运输公司工作总结
2015/08/11 职场文书