首先看的是整体框架,

// zepto骨骼,这个函数的作用使得Zepto(slector, context)使用很多$.fn里面的方法
var Zepto = (function(){// zepto是一个命名空间var $, zepto = {}// 这是一个工厂方法,返回一个数组zepto.Z = function(dom, selector) {dom = dom || []// 不知道__proto__和prototype的区别了吧,一个是对象的,另一个是方法的。new出来的对象的__proto__和构造函数的prototype一致dom.__proto__ = $.fn //通过给dom设置__proto__属性指向$.fn来达到继承$.fn上所有方法的目的dom.selector = selector || ''return dom}// zepto.init方法也只是zepto.Z的一个马甲zepto.init = function(selector, context){var domreturn zepto.Z(dom, selector)}// $是一个方法,是zepto.init方法的马甲$ = function(selector, context) {return zepto.init(selector, context)}// $.fn包含了一大堆方法$.fn = {}// zepto.Z方法new出来的对象继承了$.fn里面的一大堆方法。从前面看到zepto.Z方法里面有dom.__proto__ = $.fn,这就意味着zepto.Z工厂函数造出来的对象 instanceOf zepto.Z为true zepto.Z.prototype = $.fn$.zepto = zeptoreturn $
})()window.Zepto = Zepto
'$' in window || (window.$ = Zepto)// 事件处理
;(function($){})(Zepto)// Ajax处理
;(function($){})(Zepto)// CSS3动画
;(function($, undefined){})(Zepto)

基本上这类DOM库的骨骼构造思想是,分隔初始化构造器函数,与原型对象的作用域,又能够在返回实例中访问原型对象。

在这里,zeptojs和jquery的做法有点不同,zeptojs是运用工厂模式生成带一大堆方法的对象来搞,jquery则是构造函数更改原形链来搞。

var $ =jQuery = function(){return new jQuery.fn.init();
}
jQuery.fn = jQuery.prototype = {init : function(){this.length = 0;this.test = function(){return this.length;}return this;},jquery: "1.3.2",length: 1,size: function() {return this.length;}
}
jQuery.fn.init.prototype = jQuery.fn;     //使用jQuery的原型对象覆盖init的原型对象
alert( $().jquery );     //返回"1.3.2"
alert( $().test() );     //返回0
alert( $().size() );     //返回0

这两种方式,谁优谁劣呢,私以为zeptojs。

转载于:https://www.cnblogs.com/samwu/p/3264615.html

zeptojs库解读1之整体框架相关推荐

  1. 【Codecs系列】SVAC1.0标准解读-----整体框架分析

    Date: 2017/9/11 目录 一.SVAC1.0标准介绍 二.SVAC1.0解码整体框架分析 三.SVAC1.0解码器架构分析 四.标准PDF下载地址 一.SVAC1.0标准介绍 SVAC(S ...

  2. jQuery整体框架

    前言 jQuery整体框架甚是复杂,也不易读懂,这几日一直在研究这个笨重而强大的框架.jquery的总体架构可以分为:入口模块.底层模块和功能模块.这里,我们以jquery-1.7.1为例进行分析. ...

  3. iOS系统整体框架及类继承框架图

    iOS系统整体框架及类继承框架图 文章目录 iOS系统整体框架及类继承框架图 前言 一.系统架构 二.Cocoa框架 三.Cocoa框架的类继承体系 1.Foundation框架类继承体系 2.UIK ...

  4. 小红书整体框架及玩法

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2023年2月份热门报告合集 小红书爆文笔记进阶指南 最新亲测国内可用ChatGPT使用教程(3分钟 ...

  5. (1)go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析

    (一)介绍 zap 是go 中比较火的一个日志库,提供不同级别的日志,并且速度快 官方文档: https://pkg.go.dev/go.uber.org/zap#section-readme, 也可 ...

  6. 【推荐系统】推荐系统整体框架概览

    感谢博文作者 Kevin_Duan 原文链接:https://blog.csdn.net/chunyun0716/article/details/83152037 推荐系统整体架构 先说点题外话,最近 ...

  7. 通俗易懂SpringMVC整体框架理解

    最近又重新温习了一下前台SpringMVC框架,能够从整体上对SpringMVC有一个全局的认识.在这里也总结一下,为那些即将学习SpringMVC的亲们,做一个很好的开端吧! 1. SpringMV ...

  8. V4L2 driver(一). 整体框架

    1.1 从字符设备说起 熟悉v4l2用户空间编程的都知道, v4l2编程主要是调用一系列的ioctl函数去对v4l2设备进行打开, 关闭, 查询, 设置等操作. v4l2设备是一个字符设备, 而且其驱 ...

  9. py库: django (web框架)

    py库: django (web框架) http://www.imooc.com/learn/736 Python-走进Requests库 http://www.imooc.com/learn/790 ...

最新文章

  1. rhel6下组建两台主机的HA集群
  2. 智能音箱AEC中的回采信号
  3. Vue-第七天 学习与相关问题总结
  4. 浅析C++的三大循环-以100以内的质数求解为例
  5. [vue-cli]vue-cli怎么解决跨域的问题?
  6. Openldap命令详解
  7. 程序图片运行效果存在偏差问题
  8. 微信小程序最常用的布局——Flex布局
  9. 前端开发 个人简历的制作 0228
  10. 通过流程构建组织的【个人能力】和【团队能力】
  11. 电学 —— 库仑定律
  12. 基于留一法的快速KNN代码
  13. 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟
  14. 分辨率自动调节html,网页根据分辨率自适应
  15. 抖音前端团队国际化是怎么做的?
  16. 大学生四六级作文模板(自创版,成功跨过六级)
  17. 高中教学有计算机课吗,谈高中信息技术课教学
  18. AnacondaPrompt如何离线下载第三方库与包(比较繁琐)
  19. sql语句中的特殊符号
  20. 关于深度学习人工智能模型的探讨(六)(4)

热门文章

  1. Java对象锁和类锁全面解析(多线程synchronized关键字)
  2. [系列教程] Discuz模板的制作方法
  3. ActiveMQ 使用文档
  4. 使用nlite制作集成驱动windows安装光盘及实践心得
  5. vm安装diagram
  6. openstack云计算实践-老男孩架构师课程教案笔记分享
  7. 学习nodejs之hello world
  8. Linux Socket函数手册(二)
  9. 4.1 编程语言的几个发展阶段
  10. python文件和路径操作