1.先来一碗鸡汤
一直觉得jquery无比好用,但是对于他的源码从来不敢触碰(怂状),觉得太庞大不知从何下手,但是想提高自己的前端水平,了解架构的设计思想之类高大上的理由让我对自己下了个狠心,学!正好最近get到一套好的讲解源码的视频,那就每天学习一点点,然后就更新一点点我的学习笔记,希望促进自己学习的热情,也希望能为对jquery源码感兴趣的骚年们提供一丢丢资料~,毕竟一个人学是枯燥的,一起学就多了分享的乐趣, 恩,我看视频去了~共勉
。 2016.03.04
2.基本结构
(function(){
(
21
--
94行
)
定义一些变量和函数 jQuery = function(){ };
jquery是面向对象的。
举个例子:
jq写法: $(".box").css( );
//jq对象去调用css( )方法
一般
写法: var arr = new Arry( );
arr
.push( );
//arr对象去调用push( )方法
(
96
--
283行
)
给JQ对象添加一些方法和属性。
(
285
--
347行
)
extend:JQ的继承方法。 (extend方法利于后期扩展)
(
349
--
817行
)
jQuery.extend( ) :扩展一些工具方法。
举个例子:
$(".box").css( );
//用于jq对象调用方法(实例方法)
$.trim( );
//用于js原生对象调用方法(工具方法)
(
877
--
2856行
)
Sizzle : 复杂选择器的实现 。
(28
80
--
3042行
)Callbacks : 回调对象 : 对函数的统一管理。
(3043
--
3183行
)Deferred : 延迟对象 : 对异步的统一管理。
(3184
--
3295行
)Support : 功能检测(检测浏览器等)。
(3308
--
3652行
)data( ): 数据缓存。
(3653
--
3797行
) queue( ): 队列管理。
(3803 --
4299行
) attr( ) prop( ) val( ) addClass( )等 : 对元素属性的操作。
(4300 --
5128行
) on( ) trigger( ) 等 : 事件操作的相关方法。
(5140--
6057行
) DOM操作 : 添加 删除 获取 包装 DOM筛选。
(6058--
6620行
) css( ) : 样式的操作。
(6621--
7854行
) 提交的数据和ajax( ) : ajax( ) load( ) getJson( )。
(7855--
8584行
) animate( ) : 运动的方法。
(8585--
8792行
) offset( ) : 位置和尺寸的方法。
(8804--
8821行
) JQ支持模块化的模式。
(8826行) window.jQuery = window.$ = jQuery;
//将jquery中定义的变量挂载到windows对象上。
})( )