zoukankan      html  css  js  c++  java
  • jquery源码学习笔记二:jQuery工厂

    笔记一里记录,jQuery的总体结构如下:

    (function( global, factory ) {
        //调用factory(工厂)生成jQuery实例
        factory( global );
    }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
        //factory实现,jquery源码主体部分
    }));

    那么这个生成jQuery的工厂是咋样的?

    酱紫的:

    function( window, noGlobal ) {
    
        var jQuery = function( selector, context ) {//首先定义一个内部jQuery。注意,此jQuery只是一个工厂内部的变量,并非我们在外面引用的那个jQuery或$
            return new jQuery.fn.init( selector, context );
        };
    
        /*然后,对这个内部jQuery对象进行各种增强、扩展*/
        jQuery.fn = jQuery.prototype = {
            //...
        };
        jQuery.extend = jQuery.fn.extend = function() {
            //...
        };
        var init = jQuery.fn.init = function( selector, context, root ) {
            //...
        };
        init.prototype = jQuery.fn;
        jQuery.extend({
            //...
        });
        jQuery.fn.extend({
            //...
        });
    
        if ( !noGlobal ) {//最后,将内部jQuery赋给了外部,即我们所熟知的那个“$”
            window.jQuery = window.$ = jQuery;
        }
    
        return jQuery;
    }

    从工厂的代码来看,$ 本质上是一个函数,因此,我们才可以这样引用:

    $(".class")
  • 相关阅读:
    0diff算法参考资料
    js 对象属性值
    一些带有设计模式的优秀代码
    vue 配置多页面
    cms 管理系统
    网络技术:EtherChannel 链路汇聚
    网络技术:VLAN 中继协议(VTP)
    网络管理:管理信息库
    网络管理:抽象语法表示 ASN.1
    网络管理:基本编码规则(BER)
  • 原文地址:https://www.cnblogs.com/leftfist/p/6808710.html
Copyright © 2011-2022 走看看