• zepto源码解读(一)——整体架构


    zepto源码解读(一)

    Zepto是一个轻量级的针对现代高级浏览器的JavaScript库,针对移动端开发, 它与jquery有着类似的api。 如果你会用jquery,那么你也会用zepto。

    那么zepto这个库是怎么做的呢?一直都非常好奇,所以在上个礼拜开始就在开始慢慢的读zepto源码,也算是有一些体会,所以想开始记录自己这些不大不小的体会,也是一种成长的积累吧。那么废话不多说,直接开始写:

    Zepto核心模块架构代码

    下列代码展示了Zepto的核心模块架构代码,忽略了所有实现的细节。

    var Zepto = (function() {
        // 私有变量($和zepto不是私有变量,它们会被暴露出去)
        var undefined, emptyArray = [], filter = emptyArray.filter, slice = emptyArray.slice,
            $, zepto = {};
    
        // 私有函数
        function likeArray() {}
        // Z类
        function Z() {}
       $ = function(seclecor,context){
      return zepto.init(selector,context)
    } // 构建Z对象的主要函数 zepto.matches = function() {}; zepto.fragment = function() {}; zepto.Z = function() { return new Z(dom, selector) }; zepto.isZ = function() { return object instanceof zepto.Z }; zepto.init = function() {}; zepto.qsa = function() {};    // Z对象的共享方法 $.fn = { constructor: zepto.Z, length: 0, forEach: emptyArray.forEach, reduce: emptyArray.reduce, push: emptyArray.push, sort: emptyArray.sort, splice: emptyArray.splice, indexOf: emptyArray.indexOf, concat: function() {} } // 静态方法 $.extend = function() {}; // plugin compatibility $.uuid = 0 $.support = {} $.expr = {} $.noop = function() {} // 修改zepto.Z和Z的原型都指向$.fn zepto.Z.prototype = Z.prototype = $.fn // 把内部的一些API函数通过$.zepto命名空间暴露出去 zepto.uniq = uniq zepto.deserializeValue = deserializeValue $.zepto = zepto return $ })() window.Zepto = Zepto window.$ === undefined && (window.$ = Zepto)

    我们首先一步一步来分析,我们平时调用$("selector")的时候中的$是什么?就是这段代码最底部的window.$,但是看代码我们知道调用$实际上是调用Zepto这个自调用函数,这个函数会返回一个$,那么这里的这个$是什么呢?很显然是代码中的一个函数,$函数又返回了一个zepto.init(),那么我们跳到zepto.init()看,这个zepto.init()会处理传入的参数,并且再次return出一个zepto.Z(),zepto.Z()会return 一个新的构造函数即 return new Z(),并且通过 zepto.Z.prototype = Z.prototype = $.fn 来使Z对象拥有$.fn中的方法。

    那么整个zepto代码的一个笼统的结构就是这样了。

  • 相关阅读:
    Introduction to Computer Science and Programming in Python--MIT
    随机变量及其分布
    条件期望与重期望
    Fourier级数
    Windows进程通信-共享内存空间
    windows网络编程-socket
    PE文件中找导出表
    PE文件结构体-IMAGE_DATA_DIRECTORY
    RVA到FOA的转换
    PE文件结构体-IMAGE_SECTION_HEADER
  • 原文地址:https://www.cnblogs.com/coderzzp/p/6411775.html
Copyright © 2020-2023  润新知