一.jQuery源码解析之总体架构
2023-09-11 14:22:24 时间
1 (function (window, undefined) { 2 //构建jQuery对象 3 var document = window.document, 4 navigator = window.navigator, 5 location = window.location; 6 var jQuery = (function () { 7 var jQuery = function (selector, context) { 8 return new jQuery.fn.init(selector, context, rootjQuery); 9 }, 10 _jQuery = window.jQuery; 11 //............................ 12 //............................ 13 return jQuery; //981行 14 })(); 15 //工具方法:Utilities;我在jQuery源码中没有发现是哪一块,如果有发现的.可以告诉我一下 16 //回调函数列表 Callbacks 17 //异步队列 Deferred 18 //浏览器功能测试 Support 19 //数据缓存 Cache 20 //属性操作 Attributes 21 //队列 Queue 22 //事件系统 Event 23 //选择器 Sizzle 24 //Dom遍历 Traversing 25 //Dom操作 Manipulation 26 //样式操作 CSS 27 //异步请求 Ajax 28 //动画 Effects 29 //坐标 Offset. 尺寸Dimensions 30 window.jQuery = window.$ = jQuery; 31 })(window);
1.这个就是jQuery源码的结构了.个人觉得还是相当的清晰和有条理的.
2.jQuery的整个最外层就是一个自调用的匿名函数,这样就可以创建一个闭包.
该闭包中的各种变量,函数就不会和闭包外的变量和函数发生影响,确保了jQuery的独立性,安全性.
3最后一句代码:window.jQuery = window.$ = jQuery;
则是定义了一个全局变量jQuery和$.并且吧私有变量jQuery的引用赋给了这个全局变量.
4.将最大的对象window当做实参传递到函数中,使得window变成了局部变量,
可以大大的缩短查找window的查找时间,同样节省资源.
5,第二个参数undefined,是一个形参,在实际执行的时候,没有获得参数赋值,
那么系统就会给他自动赋值成undefined.这样在jQuery的闭包中确保了undefined值的真时性,
因为undefined在jQuery的外面有可能被篡改掉.尽管这个篡改的结果,各种浏览器不一样.
相关文章
- jQuery file upload cropper的 click .preview事件没有绑定成功
- jQuery UI Widget Factory
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- jquery中 $ 和 jQuery 及 $() 的区别
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
- jQuery+AJXA+PHP动态获取数据实现新闻网页下拉加载功能(1+X Web前端开发中级 例题)
- 优化jQuery性能的多种方法(整理总结)
- jQuery中的$(window).load()与$(document).ready()以及jquery $(document).ready() 与window.onload的区别
- jQuery可拖拽排序列表jquery-sortable-lists
- 《jQuery与JavaScript入门经典》——1.5 作业
- 《jQuery Mobile快速入门》—— 2.6 带有媒体查询的响应式布局
- 《jQuery Cookbook中文版》——1.11 删除DOM元素
- jquery.params.js,Jquery获取页面参数,js获取页面参数
- [js插件开发教程]原生js仿jquery架构扩展开发选项卡插件
- JQuery插件:动态列和无间隙网格布局Mason.js
- 利用Jquery使用HTML5的FormData属性实现对文件的上传
- Jquery学习—jquery的事件
- ArcGIS JavaScript API with jQuery: Error: multipleDefine
- jquery是如何架构的.