欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

zepto源码研究之$如何实现?

程序员文章站 2022-04-19 18:45:00
在zepto中,$作为一个选择器而存在,它接收一个字符串,返回一个选择器的数组,并且这个数组有一个属性,叫selector。 通过研究源码,zepto的实现步骤有这么几步:...

在zepto中,$作为一个选择器而存在,它接收一个字符串,返回一个选择器的数组,并且这个数组有一个属性,叫selector。

zepto源码研究之$如何实现?

通过研究源码,zepto的实现步骤有这么几步:

第一步,定义了一个 $ 的变量,这个变量属于window,并且这个变量的值是Zepto。

"$" in window || window.$ = Zepto;

那么,Zepto到底是什么?其实本质上,它是使用模块模式实现的一个函数。内部核心源码如下:

var Zepto = (function(){
    var $ = function(selector, context){
        return document.querySelectorAll(selector);
    }
    return $;
})();

这就是zepto选择器$实现的核心源码!!

在这里,仅仅是使用 querySelectorAll 方法实现了一个简单的选择器。但是在zepto源码中,实现的方式要比这个复杂的多,它是通过return 一个zepto.init()的方法来实现的。

var Zepto = (function(){
    var zepto = {};
    zepto.init = function(selector, context){
        //code
    }
    var $ = function(selector, context){
        return zepto.init(selector, context);
    }
    return $;
})();

它的实现就是通过这样的方式来进行的。

然后在zepto.init的方法来实现选择器。但是,此外zepto.init()还实现了其他的一些东西。