jquery源码之通篇概要

我要学习的是jquery 2.0.3 版本的源码。首先说明为什么要选择这个版本,理由很简单,jquery 2.x 之后就不支持ie6,7,8了,很多hack方法都会没有.

这边文章记录的是jquery源码通篇概要,请直接往下看:
(function(window, undefined) {
  (21,94)          定义了一些变量和函数 jQuery = function() {}【201712042300】
  (96,283)        jQuery.fn :给JQ对象,添加一些方法和属性【20171213221700】
  (285,347)      extend :jq的继承方法 【201712182150】
  (349,817)       jQuery.extend() :拓展一些工具方法
  (877,2856)     Sizzle :复杂选择器的实现
  (2880,3042)   Callback :回调对象 :对函数的统一管理
  (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;  
})(window);
 
【备注】
1、为什么jq选择把全部代码封装在一个匿名函数内?
第一:匿名函数自执行创建函数作用域与外界有很好的隔离作用,与其他代码互不影响;
第二:关于这个匿名函数接收的两个参数:window 和 undefined
   window作为参数传递的原因:作为参数传递window是匿名函数使用window时查找最快,还有对于jq源码的编译混淆;
   undefined作为参数传递的原因:初始化undefined的值,防止外界对undefined这个属性修改,ie低版本允许对undefined进行赋值;
 
 

 

posted @ 2017-12-02 21:45  _watson  阅读(134)  评论(0编辑  收藏  举报