资讯专栏INFORMATION COLUMN

Zepto.js源码学习之二

kel / 3528人阅读

摘要:本次主要分享关于上一篇区域的学习。区域为的核心部分,它的结构如下为了便于梳理思路,以上代码省略了细节,只保留了轮廓脉络。最终暴露给开发者的如下图所示这里只分析了区域的结构,下一次会深入到函数语句粒度。

本次主要分享关于上一篇区域2的学习。
区域2为Zepto的核心部分,它的结构如下

var Zepto = (function() {
   var $, zepto = {};
   function Z(dom, selector) {}
   zepto.Z = function(dom, selector) {
      return new Z(dom, selector)
   }
   zepto.isZ = function(object) {
      return object instanceof zepto.Z
   }
   zepto.init = function(selector, context) {
      blablabla...
      return zepto.Z(dom, selector);
   }
   $ = function(selector, context) {
      return zepto.init(selector, context)
   }
   zepto.qsa = function(element, selector) {
      blablabla...
   });
   $.fn = {
      blablabla...
   };
   zepto.Z.prototype = Z.prototype = $.fn;
   $.zepto = zepto;
});

为了便于梳理思路,以上代码省略了细节,只保留了轮廓脉络。
这段代码首先定义了两个变量$和zepto,一个类Z;然后给空对象zepto定义属性和方法,其中zepto.Z得到类Z的一个实例,至于zepto.init,从默认执行return zepto.Z(dom, selector)可以得知,它也是获得类Z的实例,只是有可能因为参数不同作不同处理,在深入细节之前姑且这么理解;$是一个函数,返回值为zepto.init(),亦即类Z的实例;zepto.Z.prototype = Z.prototype = $.fn是为创建的类Z的实例设置原型属性,同时为类Z设置原型属性;$.zepto = zepto则是将以上各种处理得到的对象zepto悬挂到$上作为属性zepto。
最终暴露给开发者的$.zepto如下图所示:

这里只分析了区域2的结构,下一次会深入到函数语句粒度。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81101.html

相关文章

  • Java 容器习之 HashMap

    摘要:底层的数据结构就是数组链表红黑树,红黑树是在中加进来的。负载因子哈希表中的填满程度。 前言 把 Java 容器的学习笔记放到 github 里了,还在更新~其他的目前不打算抽出来作为文章写,感觉挖的还不够深,等对某些东西理解的更深了再写文章吧Java 容器目录如下: Java 容器 一、概述 二、源码学习 1. Map 1.1 HashMap 1.2 LinkedHashM...

    Alex 评论0 收藏0
  • 一文掌握关于Java数据结构所有知识点(欢迎一起完善)

    摘要:是栈,它继承于。满二叉树除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。没有键值相等的节点。这是数据库选用树的最主要原因。 在我们学习Java的时候,很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况(我本人之前就很迷茫)。所以,我决定通过这个开源平台来帮助一些有需要的人,通过下面的内容,你会掌握系统的Java学习以及面试的相关知识。本来是想通过Gitbook的...

    keithxiaoy 评论0 收藏0
  • jQuery源码习之extend

    摘要:源码学习之用于合并对象,可选择是否深复制。尽管官方文档明确指出第一个参数是的调用情况并不支持,但是这个版本的源码中,判断第一个参数的类型虽有限定是类型,但却未对其值真假加以限定。调用方式源码和指向同一个函数,在函数内部,对调用情况进行区分。 jQuery源码学习之extend $.extend用于合并对象,可选择是否深复制。使用时,第一个参数为合并后的对象。如果要进行深拷贝,则参数1为...

    quietin 评论0 收藏0
  • 集合框架源码习之ArrayList

    摘要:用户自己指定容量创建大小的数组创建空数组默认构造函数,其默认初始容量为构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。以正确的顺序返回该列表中的元素的迭代器。此方法充当基于阵列和基于集合的之间的桥梁。 目录: 0-0-1. 前言 0-0-2. 集合框架知识回顾 0-0-3. ArrayList简介 0-0-4. ArrayList核心源码 0-0-5. Ar...

    BLUE 评论0 收藏0

发表评论

0条评论

kel

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<