Zepto.js源码进修之一

元旦假期转眼即过,终究在末了一天想起最初谁人“雄伟”的设计,然后默默捡起Zepto源码的第一行。在细致深切之前,我愿望能对Zepto库构造有一个团体的相识。看的时间比较短,以下如果有不正确的处所,迎接指出。

最外层

(function(global, factory) {
  if (typeof define === 'function' && define.amd)
    define(function() {
      return factory(global);
    })
  else
    factory(global)
}(this, function(window) {
   blablabla......                               地区1
}))

地区1为略去的细节,后面会引见,此处只集合注意力于最外层。
最外层为一个匿名的马上实行函数,由于只需要实行一次。该函数接收两个参数,第一个参数示意zepto将挂载的这个对象,第二个参数为一个函数,重要的内容都由该函数完成(这里临时称之为‘重要函数’,即地区1),至于‘重要函数’细致做了哪些事情,下面引见。

重要函数

‘重要函数’的缩略代码以下

function (window) {
   var Zepto = (function() {
      blablablabla......                         地区2
   })();
   window.Zepto = Zepto;                         地区3
   window.$ === undefined && (window.$ = Zepto); 地区4
   (function($) {
      blablablabla......                         地区5
   })(Zepto);
   (function($) {
      blablablabla......                         地区6
   })(Zepto);
   (function($) {
      blablablabla......                         地区7
   })();
   return Zepto;                                 
}

该函数分为6个部份,离别对应上面代码段的地区2-7,重要完成Zepto对象的定义以及Zepto对象上相干要领的定义。
地区2为定义Zepto对象;地区3将Zepto对象绑定为window对象的Zepto属性和$属性,$即成为Zepto的一个别号,这在运用中会牵涉到别号的争执及处置惩罚,此处不细致睁开;地区4完成事宜相干要领的定义;地区5重要定义收集要求的相干要领;地区6重如果封装表单数据处置惩罚的相干要领;地区7对getComputedStyle的参数举行兼容undefined处置惩罚。

下一次会更细致的进修和分享,大概会根据上面的地区加以睁开。

    原文作者:清晖
    原文地址: https://segmentfault.com/a/1190000007989480
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞