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 live( type, fn ) 委派事件实现
Oct 11 Javascript
Confirmer JQuery确认对话框组件
Jun 09 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
微信小程序实战之自定义抽屉菜单(7)
Apr 18 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 Javascript
axios如何利用promise无痛刷新token的实现方法
Aug 27 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 Javascript
vue实现前端分页完整代码
Jun 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学习之PHP变量
2006/10/09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
js日历功能对象
2012/01/12 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
python实现外卖信息管理系统
2018/01/11 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
光荣入党自我鉴定
2014/01/22 职场文书
社区工作者演讲稿
2014/05/23 职场文书
旅游文化节策划方案
2014/06/06 职场文书
倡议书的写法
2014/08/30 职场文书
五心教育心得体会
2014/09/04 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年党支部工作总结
2014/11/13 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技