【 JQuery 】 源码解析大纲

Jquery 2.0.3 源码解析

20. JQuery 入口函数

(function(window, undefined ){

})(window,undefined);

  • 1.匿名函数执行 jquery : 节省内存 ;

  • 2.window 传参: 减少查找次数,提高效率,不需要逐级向上查找,直接查找 window ;

  • 3.undefined 传参: 抑制 undefined 的出现,提高代码的持久性,防止 undefined 在应用程序中的传播 ;

  • Tip:

        在全局(window)情况下undefined 不可改写,但是在函数中可以被改写,故在 jquery 中需要定义undefined,防止被篡改 ;

01. 0021-0094 Jquery 中的变量

	  // Jquery 中的核心函数(我们常用 $  jQuery() )
        jQuery = function( selector, context ) {
            // 返回一个 jqery 对象
            return new jQuery.fn.init( selector, context, rootjQuery );
        }

02. 0096 - 263 JQ 面向对象方式封装构造对象

03. 0285 - 0347 extend : JQ 继承方法

04. 0349 - 0817 jQuery.extend() 扩展的工具方法

	 function extend(){
            /* 例:
                $().css()   // jquery 对象的方法
                $.trim()    // jquery 中的静态方法 ——> jquery 工具方法
            */
        }

05. 0847 - 2586 sizzle : 复杂选择器实现(确定你选择的选择器)—— 独立模块、可偷


    // 复杂:选择元素对子集、子集的子集、子集的兄弟元素等的选择方法

06. 2880 - 3042 Callbacks() : 回调对象的实现 ——> 通过回调对象对函数进行统一管理

	 // 函数管理:函数太多,
        function callbacks(){
            var cb = $.Callbacks();

            function f1(){alert(1)}
            function f2(){alert(2)}

            cb.add(f1);     // 添加f1函数
            cb.add(f2);     // 添加f2函数

            cb.fire();      // 同时执行:f1、f2 两个函数

            cd.remove(f1);  // 删除f1函数
        }

07. 3043 - 3183 Deferred : 延迟对象 ——> 对异步的统一管理;

	function deferred(){
      // 定时器、ajax、等异步操作的统一管理
       // 实现以下功能
       /*
       setTimeout(function(){
           alert(1);       // 先弹
       },1000);
       alert(2);           // 后弹
       */
       // 实现以下功能
       var dfd =  $.Deferred();    // 返回 Deferred 对象
       setTimeout(function(){
           alert(1);       // 先弹
           dfd.resolve();  // 优先执行
       },1000);
       // 延迟执行
       dfd.done(function(){        // 将 函数 存储到 dfd 对象中,当触发dfd对象的 resolve() 方法时,执行该函数
           alert(2);           // 后弹
       })
    }

08. 3184 - 3295 support : 功能检测功能(通过功能判断浏览器)

09. 3308 - 3652 data() : jquery 中的数据缓存

	 function data(){
            // 添加静态变量
            $('#div').data(name);
            // 添加字符串
            $('#div').data('name');

            // 不建议添加对象,可能会出现内存泄露的问题 —— jquery 缓存的挂载机制
        }

10. 3653 - 3797 queue() : 队列管理(入队)——先进先出

	function queue(){
            // 入队 —— 在写运动时,可能会用到队列
                // 将三个动画加载如对象中 —— 逐步执行
            $('#div').animation({left:100px});  // 先执行
            $('#div').animation({top:100px});   // 在执行
            $('#div').animation({width:100px}); // 最后执行
        }
        function dequeue(){
            // 出队列 —— 最先添加的最先出


        }

11. 3803 - 4299 attr() 、 prop() 、val() 、 addClass() …… : 对元素的属性操作

12. 4300 - 5128 on() 、 trigger() …… : 事件操作、触发等的相关操作

13. 5140 - 6057 DOM 操作:增、删、改、查、、包装 等 ……

14. 6058 - 6620 css 方法:对样式的操作、处理 ( 样式的兼容性、写法等)

15. 6621 - 7854 提交的数据 && Ajax 功能的实现:跨域、load、script 等

16. 7855 - 8584 animate() : 动画操作(show()、hide()、fadeIN()、fadeOut()等)

17. 8585 - 8792 位置 && 尺寸:offset() ……

18. 8804 - 8821 jquery 支持模块化的模式 —— 多兼容

19. 8825 - 8827 Jquery 对外提供接口

	 // 将 JQuery 添加给 window 对象,并可以使用 $ 符号来进行 JQuery 调用;
        if ( typeof window === "object" && typeof window.document === "object" ) {
            window.jQuery = window.$ = jQuery;
        }

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值