导读
工作将近两年了,从一个什么也不懂的小白渐渐成为一个cv工程师。所有的东西还是停留在使用的阶段上,所以打算分析一下源码学习一下大佬们的设计模式与思路。因最近工作调整又重新接触到了jQuery所以打算从jQuery的源码开始学起。此系列文章以jQuery-2.0.3为例。不对的地方欢迎指正。
整体架构剖析
(function(){
(21,94) 定义了一些变量和函数 : jQuery = function(){}
(96,34) 给jQ对象添加一些方法和属性
(285,394) extend() : JQ继承方法
(394,817) jQuery.extend() : 扩展一些工具方法
(877,2856) Sizzle() : 复杂选择器的实现
(2880,3042) Callbacks() : 回调对象 : 对函数的统一管理
(3043,3183) Deferred() : 延迟对象 : 对异步的统一管理
(3184,3295) support() : 功能检测
(3308,3652) data() : 数据缓存
(3653,3793) queue() : 队列管理
(3803,4299) 对元素属性的操作 : attr() prop() val() addClass()
(4300,5128) 对事件操作的相关方法 : on() trigger()
(5129,6057) DOM操作 : 添加 删除 获取 包装 dom筛选
(6058,6620) css() : 样式操作
(6621,7854) 提交数据和ajax操作
(7855,8584) animate() : 运动操作
(8585,8792) offset() scrolltop() : 位置与尺寸
(8804,8821) jQuery 支持模块化的模式
(8826) 对外暴漏全局的变量: window.jquery = window.$ = jQuery;
})();
结束语
jQuery大概分为以上模块,每个人对源码的理解都是因人而异从而导致划分的区域有所不同。下一章带来jQuery中变量与函数模块的分析。