zoukankan      html  css  js  c++  java
  • jquery源码学习(一)——jquery结构概述以及如何合适的暴露全局变量

    jQuery 源码学习是对js的能力提升很有帮助的一个方法,废话不说,我们来开始学习啦

    我们学习的源码是jquery-2.0.3已经不支持IE6,7,8了,因为可以少学很多hack和兼容的方法。

    jquery-2.0.3的代码结构如下

    首先最外层为一个闭包, 代码执行的最后一句为window.$ = window.jquery = jquery 让闭包中的变量暴露倒全局中。

    传参传入window是为了便于压缩

    传入undefined是为了undifined被修改,他是window的属性,可以被修改的。

    (function(window,undefined){
    
    //(21,93) 提供了一些变量
    
    //(96,283) 给jq添加一些对象和方法
    
    //(285,347) extend : jq的继承方法,方便扩展
    
    //(349,817) jquery.extend : 扩展了一些工具方法
    
    //(877,2856) Sizzle : 复杂选择器的实现
    
    //(2880,3042) callBakcs : 回调对象 : 函数的一个统一管理
    
    //(3034,3183) Deferred : 延时对象 : 对异步统一管理
    
    //(3184,3295) Support : 功能检测 : 
    
    //(3308,3652) data() : 数据缓存机制
    
    //(3653,3797) queye()队列管理,入队
    
    //(3803,) 对元素属性的操作
    
    //(4300,5128) on, triggle 事件操作的相关方法
    
    //(5140,6057) DOM操作 : 添加删除获取包装
    
    //(6058,6620) css() : 样式的操作
    
    //(6621,7854) 提交数据和ajax() : ajax() load() getJson()
    
    //(7855,8584) animate() : 运动的实现
    
    //(8585,8792) offset() : 位置和尺寸的方法
    
    //(8804,8821) Jq支持模块化的模式
    
    //(8826) window.jquery = window.$ = jquery
    
    	function JQuery(){
    	}
    	function jQuery(){
    		return new JQuery( )
    	}
    	window.$ = window.jquery = jQuery; //提供对外接口;
    })(window)
    

      

     

     

  • 相关阅读:
    oracle中Blob和Clob类型的区别
    为什么要分库分表
    Enable file editing in Visual Studio's debug mode
    SQL Server Dead Lock Log
    Debug .NET Framework Source
    SQL Server text field里面有换行符的时候copy到excel数据会散乱
    诊断和修复Web测试记录器(Web Test Recorder)问题
    Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
    'telnet' is not recognized as an internal or external command
    Linq to XML
  • 原文地址:https://www.cnblogs.com/sowhite/p/6354480.html
Copyright © 2011-2022 走看看