美文网首页
一、jQuery源码(1)------ 2020-04-05

一、jQuery源码(1)------ 2020-04-05

作者: 自己写了自己看 | 来源:发表于2020-04-05 13:52 被阅读0次

    1、jQuery实现的原理:

    (function (global, factory) {
        // 支持commonJS规范的走这里
        if (typeof module === "object" && typeof module.exports === "object") {
            
        } else { // 这里可以理解为浏览器环境
            factory(global);
        }
    })(typeof window !== "undefined" ? window : this, function (window, noGlobal) {
    
        var version = "3.4.1",
            jQuery = function (selector, context) {
                return new jQuery.fn.init(selector, context);
            },
    
            /**
             * jQuery.prototype 是把jQuery当做构造函数使用
             * jQuery.fn 此时jQuery是一个对象
             * 把jQuery的原型赋给jQuery的fn属性
             */
            jQuery.fn = jQuery.prototype = {
            }
    
        // 把jQuery.fn.init这个函数赋值给init
        var init = jQuery.fn.init = function (selector, context, root) {};
    
        /**
         * 把jQuery.fn.init的原型指向了jQuery,所以,
         * jQuery.fn.init的实例调取的也是jQuery原型上的方法
         * 因此,jquery.fn.init的实例在功能上和jQuery是相同的,
         * 所以可以认为是jQuery的实例
         */
        init.prototype = jQuery.fn;
    
        if (!noGlobal) {
            window.jQuery = window.$ = jQuery;
        }
    });
    
    /**
     * 为什么创建jQuery实例时,不直接return new jQuery();
     * 因为会陷入死递归
     */
    jQuery = function (selector, context) {
        return new jquery();
    }
    

    相关文章

      网友评论

          本文标题:一、jQuery源码(1)------ 2020-04-05

          本文链接:https://www.haomeiwen.com/subject/btduphtx.html