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")
  • 相关阅读:
    基于Python的接口测试框架
    接口自动化之Postman+Newman
    UIAutomator定位Android控件的方法
    HTTP接口功能自动化测试入门
    前端基础:HTML标签(上)
    Python 面向对象进阶
    Python 断言和异常
    Linux 文件上传Linux服务器
    Python 运算符
    Python 基本数据类型
  • 原文地址:https://www.cnblogs.com/leftfist/p/6808710.html
Copyright © 2011-2022 走看看