zoukankan      html  css  js  c++  java
  • jquery框架概览(一)

    参照jQuery 2.0.3版本(https://files.cnblogs.com/files/snoy/jquery-2.0.3.js")来进行的源码分析
    从代码的最外层可以看到是一个IIFE即自执行匿名函数

    (function(window, undefined) {
        
    })(window)
    

    从代码的21~94行定义了一些变量和函数
    重点分析下面的代码 (1)

      jQuery = function( selector, context ) {
            // The jQuery object is actually just the init constructor 'enhanced'
            return new jQuery.fn.init( selector, context, rootjQuery );
        },
    
    

    代码的8826行的代码(2)

    window.jQuery = window.$ = jQuery;
    
    

    通过上面(2)代码就把上面(1)jQuery保存起来的函数暴露给window对象了,就可以通过jQuery或者$来访问(1)的函数了
    这就是对外提供的接口

    代码的96~281给jQuery对象添加一些方法和属性

    jQuery.fn=jQuery.prototype={
        
    };
    

    代码的285~347是jQuery继承的一些方法

    jQuery.extend = jQuery.fn.extend = function() {
    }
    
    

    代码的349~818是jQuery扩展的一些工具方法类似于静态方法比如说$.trim()

    jQuery.extend();
    
    

    代码的877~2856是Sizzle CSS Selector复杂选择器(http://sizzlejs.com/)
    代码的2880~3042是jQuery回调对象作用是函数的统一管理

    jQuery.Callbacks=function(){};
    
    

    代码的3043~3183是延迟对象作用是异步的统一管理

    jQuery.extend({
     Deferred;function(){},
     when:function(){}
    });
    
    

    代码的3184~3295是对浏览器功能的检测,而不是去判断浏览器类型

    jQuery.support=(function(support){})({});
    
    

    代码的3308~3652是对数据data的缓存
    代码的3653~3797是对queue的管理

    jQuery.extend();
    jQuery.fn.extend();
    

    代码的3803~4299是对元素属性的操作
    代码的4300~5128是事件操作的相关方法
    代码的5140~6057是和DOM有关的操作
    代码的6058~6620是元素CSS样式的操作
    代码的6621~7854是form表单提交的功能(ajax,cors,load,getJson,getScript。。。)
    代码的7785~8584是animate运动的操作
    代码的8585~8792是位置和尺寸的操作
    代码的8504~8821是jQuery支持模块化的方式
    代码的8504~8827是jQuery对外提供的暴露接口

  • 相关阅读:
    Redis基础用法
    SpringCloud
    Excel数据导入数据库
    MySQL数据库汇总
    Java8stream表达式
    LocalDateTime&LocalDate&LocalTime
    深入理解Java中的锁
    数据集合
    平台介绍
    dubbo源码阅读之自适应扩展
  • 原文地址:https://www.cnblogs.com/snoy/p/6498929.html
Copyright © 2011-2022 走看看