zoukankan      html  css  js  c++  java
  • jquery源码之拓展工具方法jQuery.extend()

    jQuery.extend({

      expando :生成唯一jq字符串(内部):作用,用于作为唯一映射关系:"jQuery" + ( core_version + Math.random() ).replace( /D/g, "" )

      noConflict() :防止冲突,当外界使用 $ 或者 jQuery 时候,jq可以自动方法这两个对外接口,通过调用 noConflict()  函数,自定义对外使用接口,例子如下2;

      isReady :dom是否加载完成(内部使用)

      readyWait :等待多少文件的计数器(内部使用)

      holdReady() :推迟dom触发

      ready() :准备dom触发

      isFunction() :是否为函数

      isArray :是否为数组

      isWindow() :是否为window

      isNumeric() :是否为数字

      type() :判断数据类型

      isPlainObject() :是否为对象自变量

      isEmptyObject() :是否为空的对象

      error() :抛出异常

      parseHTML() :解析节点

      parseJSON() :解析json

       。。。【未完待续,第16次课】

      trim() :去前后空格

      makeArray() :类数组转数组

      inArray() :数组版 indexOf

      merge() :合并数组

      grep() :过滤新数组

      map() :映射新数组

      guid() :唯一标志符(内部使用)

      proxy() :改this指向

      access() :多功能值操作(内部使用)

      now() :当前时间

      swap() :css交换(内部使用)

    )};

     jQuery.ready.promise = function() { };   监测dom的异步操作(内部使用)

    function isArraylike() { }; 类似数组的判断(内部使用)

    知识点梳理

    1、jQuery.extend()方法解读,以插件形式进行拓展工具方法

    a. jq对象使用

    b. 原生js使用

    c. 在源码中使用,源码中的实例方法很多调的都是jq的工具方法,作为jq源码最底层的架构;

    2、noConflict() 函数

    <script> var $=123; var jQuery=456; </script>

    <script src="jquery-2.0.3.js"></script>

    <script>

      var emma = $.noConflict();  // 对 $ 的放弃

      emma(function() { alert($); })  // 弹出123

      var watson = $.noConflict(true); // 对 jQuery 的放弃

      watson(function() { alert(jQuery); }) // 弹出456

    </script>

    3、$(function() {}); 和 window.onload = function() { }; 两者的区别

    前者:页面中,dom加载完毕,然后调用方法,本质是监听原生的 DOMContentLoaded 事件;

    后者:页面中,所有资源都加载完毕,然后调用方法;

    jq源码对于前者的实现如下:

    4、代码同步化处理函数:$.holdReady();

    $.holdReady(true);

    $.getScript('a.js', function() { $.holdReady(false); }); 

    $.holdReady(true);

    $getScript('b.js', function() { $.holdReady(false);  });

    $(function() { alert(2) });

  • 相关阅读:
    图论分支-Tarjan初步-边双联通分量
    图论分支-Tarjan初步-割点和割边
    简谈图论重要性&&图论总结
    Angular本地数据存储LocalStorage
    (转)AngularJS中使用的表单验证
    (转)AngularJS判断checkbox/复选框是否选中并实时显示
    (转载)JavaScript世界万物诞生记
    (转载)关于My97 datepicker与Angular ng-model绑定问题解决。
    mysql
    mysql
  • 原文地址:https://www.cnblogs.com/shihangbo/p/8068145.html
Copyright © 2011-2022 走看看