zeptojs库解读1之整体框架
首先看的是整体框架,
// 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之整体框架相关推荐
- 【Codecs系列】SVAC1.0标准解读-----整体框架分析
Date: 2017/9/11 目录 一.SVAC1.0标准介绍 二.SVAC1.0解码整体框架分析 三.SVAC1.0解码器架构分析 四.标准PDF下载地址 一.SVAC1.0标准介绍 SVAC(S ...
- jQuery整体框架
前言 jQuery整体框架甚是复杂,也不易读懂,这几日一直在研究这个笨重而强大的框架.jquery的总体架构可以分为:入口模块.底层模块和功能模块.这里,我们以jquery-1.7.1为例进行分析. ...
- iOS系统整体框架及类继承框架图
iOS系统整体框架及类继承框架图 文章目录 iOS系统整体框架及类继承框架图 前言 一.系统架构 二.Cocoa框架 三.Cocoa框架的类继承体系 1.Foundation框架类继承体系 2.UIK ...
- 小红书整体框架及玩法
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2023年2月份热门报告合集 小红书爆文笔记进阶指南 最新亲测国内可用ChatGPT使用教程(3分钟 ...
- (1)go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析
(一)介绍 zap 是go 中比较火的一个日志库,提供不同级别的日志,并且速度快 官方文档: https://pkg.go.dev/go.uber.org/zap#section-readme, 也可 ...
- 【推荐系统】推荐系统整体框架概览
感谢博文作者 Kevin_Duan 原文链接:https://blog.csdn.net/chunyun0716/article/details/83152037 推荐系统整体架构 先说点题外话,最近 ...
- 通俗易懂SpringMVC整体框架理解
最近又重新温习了一下前台SpringMVC框架,能够从整体上对SpringMVC有一个全局的认识.在这里也总结一下,为那些即将学习SpringMVC的亲们,做一个很好的开端吧! 1. SpringMV ...
- V4L2 driver(一). 整体框架
1.1 从字符设备说起 熟悉v4l2用户空间编程的都知道, v4l2编程主要是调用一系列的ioctl函数去对v4l2设备进行打开, 关闭, 查询, 设置等操作. v4l2设备是一个字符设备, 而且其驱 ...
- py库: django (web框架)
py库: django (web框架) http://www.imooc.com/learn/736 Python-走进Requests库 http://www.imooc.com/learn/790 ...
最新文章
- rhel6下组建两台主机的HA集群
- 智能音箱AEC中的回采信号
- Vue-第七天 学习与相关问题总结
- 浅析C++的三大循环-以100以内的质数求解为例
- [vue-cli]vue-cli怎么解决跨域的问题?
- Openldap命令详解
- 程序图片运行效果存在偏差问题
- 微信小程序最常用的布局——Flex布局
- 前端开发 个人简历的制作 0228
- 通过流程构建组织的【个人能力】和【团队能力】
- 电学 —— 库仑定律
- 基于留一法的快速KNN代码
- 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟
- 分辨率自动调节html,网页根据分辨率自适应
- 抖音前端团队国际化是怎么做的?
- 大学生四六级作文模板(自创版,成功跨过六级)
- 高中教学有计算机课吗,谈高中信息技术课教学
- AnacondaPrompt如何离线下载第三方库与包(比较繁琐)
- sql语句中的特殊符号
- 关于深度学习人工智能模型的探讨(六)(4)