jQuery(版本2.0.3)整体结构如下:
下载地址:https://code.jquery.com/jquery/
版权声明:以下为本人在妙味课堂听课的笔记
(function(window,undefined){
Line 21 --- 94 定义了一些变量和函数
Line 96 --- 283 给JQuery对象添加方法和属性
Line 285 --- 347 extend:继承方法
Line 349 --- 817 jQuery.extend():扩展一些工具方法
Line 877 --- 2856 Sizzle:复杂选择器的实现
Line 2880 --- 3042 Callbacks:回调对象,实现对函数的统一管理
Line 3043 --- 3183 Deferred:延迟对象,实现对异步的统一管理
Line 3184 --- 3295 support:功能检测,主要是检测浏览器的功能信息
Line 3308 --- 3652 data():数据缓存
Line 3653 --- 3797 queue():队列管理
Line 3803 --- 4299 对元素属性的操作:attr() prop() val()等
Line 4300 --- 5128 事件操作的相关方法:on() trigger()
Line 5140 --- 6057 DOM操作,节点的添加、获取、删除、筛选、包装
Line 6058 --- 6620 样式操作:css()
Line 6621 --- 7854 数据操作:ajax() load() getJson()
Line 7855 --- 8584 运动的方法:animate()
Line 8585 --- 8792 位置和尺寸的方法:offset()
Line 8804 --- 8821 JQuery支持模块化的模式
Line 8826 window.jQuery = window.$ = jQuery;// jQuery为对外提供的接口,通过挂载到window下可以在闭包之外获取到
})( window);
1、以匿名函数自执行的方式,作用:可以防止命名冲突,在函数内部定义的变量都是局部变量,可以有效防止用户外部自定义的函数或变量与JQuery中定义的变量、函数冲突。
2、将window作为参数传入,提高性能。不作为参数传进去,程序在执行时也会向上查找到window,但是作为参数传进去之后,程序每次查找,都会先找离他最近的变量, 而不需要每次都向上查找到document。其次,通过传参,在缩减代码时,可将window用变量代替。
3、参数undefined,有些浏览器下,undefined可以作为变量名而赋予其它值。为了避免外界操作对jQuery内部执行造成的影响,所以在此内部定义undefined。