jQuery 源码学习是对js的能力提升很有帮助的一个方法,废话不说,我们来开始学习啦
我们学习的源码是jquery-2.0.3已经不支持IE6,7,8了,因为可以少学很多hack和兼容的方法。
jquery-2.0.3的代码结构如下
首先最外层为一个闭包, 代码执行的最后一句为window.$ = window.jquery = jquery 让闭包中的变量暴露倒全局中。
传参传入window是为了便于压缩
传入undefined是为了undifined被修改,他是window的属性,可以被修改的。
(function(window,undefined){ //(21,93) 提供了一些变量 //(96,283) 给jq添加一些对象和方法 //(285,347) extend : jq的继承方法,方便扩展 //(349,817) jquery.extend : 扩展了一些工具方法 //(877,2856) Sizzle : 复杂选择器的实现 //(2880,3042) callBakcs : 回调对象 : 函数的一个统一管理 //(3034,3183) Deferred : 延时对象 : 对异步统一管理 //(3184,3295) Support : 功能检测 : //(3308,3652) data() : 数据缓存机制 //(3653,3797) queye()队列管理,入队 //(3803,) 对元素属性的操作 //(4300,5128) on, triggle 事件操作的相关方法 //(5140,6057) DOM操作 : 添加删除获取包装 //(6058,6620) css() : 样式的操作 //(6621,7854) 提交数据和ajax() : ajax() load() getJson() //(7855,8584) animate() : 运动的实现 //(8585,8792) offset() : 位置和尺寸的方法 //(8804,8821) Jq支持模块化的模式 //(8826) window.jquery = window.$ = jquery function JQuery(){
}
function jQuery(){
return new JQuery( )
}
window.$ = window.jquery = jQuery; //提供对外接口;
})(window)